Я создаю проект и решил получить данные из API в Интернете. У меня есть 3 модели :coholic_beverage, потребитель и потребление (которая является таблицей соединения для отношений многих ко многим между alc_beverage и потребителем). Один атрибут моего алкогольного напитка - cocktail_name, который извлекается через итерацию моего API. Как я могу извлечь эти данные и затем отобразить их в моем файле запуска (для выполнения методов командной строки). Мне нужен такой метод, как display_cocktail_menu, который берет названия коктейлей из API и перечисляет их для чтения потребителем. Мой класс AlcoholicBeverage выглядит так (я тоже создал миграцию):
class AlcoholicBeverage < ActiveRecord::Base
has_many :intakes
has_many :consumers, through: :intakes
end
У меня есть исходный файл rake, в который я загружал и повторял через API, поэтому я могу все проверить ... но Я не знаю, как на самом деле хранить эти данные. Я новичок ie, так что любые указатели помогут. Я изменяю свой класс AlcBeverage, как указано ниже, который представляет то, что я сделал в моем файле seed.rb (и работал при попытке получить AlcoholicBeverage.all), но при реализации этого здесь продолжал получать неинициализированную постоянную ошибку (NameError):
require 'pry'
require 'rest-client'
require 'json'
class AlcoholicBeverage < ActiveRecord::Base
has_many :intakes
has_many :consumers, through: :intakes
ingredients=RestClient.get("https://raw.githubusercontent.com/teijo/iba-cocktails/master/recipes.json")
@ingredients_data=JSON.parse(ingredients)
def self.all
@ingredients_data.collect do |x,y|
AlcoholicBeverage.create(cocktail_name: x["name"])
end
end
end
Я знаю, что метод self.all тоже неверен, но я не уверен, как go хранить имена cocktail_names (хотя моя итерация точно верна). Это мой rakefile:
require_relative 'config/environment'
require 'sinatra/activerecord/rake'
desc 'starts a console'
task :console do
ActiveRecord::Base.logger = Logger.new(STDOUT)
Pry.start
end