Utilizing ‘Rest-client’ gem to set unique id’s to objects

Grace Yuiko Nakano
2 min readAug 17, 2021

Have you ever needed to utilize an endpoint with objects that did not contain unique ids? The ‘rest-client’ is a great gem to utilize to parse these objects to seed into your seed file so you can assign an id and save in your database.

This gem is a simple HTTP and REST client utilized in Ruby applications. Here is how I utilized this gem to be able to make post and delete requests.

NB: Make sure that you have already set up your models, controllers, created some tables. A handy command to generate these resources is:

rails g resources Recipe title img_url ingredients directions 

Set up serializers so you view these parsed JSON objects:

Include in Gemfile:

gem 'active_model_serializers', '~> 0.10.2'

Terminal command:

gem install active_model_serializers -v 0.10.2

Generate these files in the same way:

rails g serializer recipe

Make sure to add the attributes (keys) that you want to access

class MemberSerializer < ActiveModel::Serializer  
attributes :id, :title, :image_url, :ingredients, :directions
end
  1. Install ‘rest-client’ gem

Include in your Gemfile:

gem 'rest-client', '~> 1.8'

cd to your backend folder and run in terminal:

gem install rest-client -v 1.8.0

2. Add to seed.rb:

Make sure to require ‘rest-client’ & ‘json

require 'rest-client'
require 'json'
rm = RestClient.get 'https://CORS-endpoint.com/' rm_array = JSON.parse(rm)rm_array.each do |recipe|
Member.create(
title: recipe["title"],
image_url: recipe["image_url"],
ingredients: recipe["ingredients"],
directions: recipe["directions"]
)
end

If you wanted to see what these objects are in your console, you can require ‘pry’ (again, make sure it is installed) and make sure it is returning the appropriate objects. Make sure the keys match the CORS enabled endpoint.

4. Migrate tables and seed data

rails db:migrate && rails db:seed

5. Check your server and voila!

rails s

You should now see these objects in your backend server with assigned and unique keys!

--

--

Grace Yuiko Nakano

Fullstack Software Engineer | Musician | Food Lover | Coffee Addict