我正在努力使其尽可能通用,以帮助他人。
我正在从宝石中检索某些数据,如:
gem = Gem::Client.new.get_country_profile
和get_country_profile返回
gem.id // "23"
gem.country // "Germany"
gem.motto // 'Beer'
它作为一个对象发送,我可以迭代它。我创建了一个迁移模型和控制器来处理所有这些
@country_data = @country.country_data
创建以处理从gem保存数据。
那么如何将数据从gem保存到数据库?以下不起作用。
def save_profile
@country_data = @country.country_data //Country_data.all doesn't work either.
@country_data.each do |a|
gem = Gem::Client.new.get_country_profile
gem.id = a.id
gem.country = a.country
gem.motto = a.motto
a.save!
end
end
以下是模型:
class CountryDataController < ApplicationRecord
belongs_to :country
end
这是样板脚手架控制器:
class CountryDataController < ApplicationController
before_action :set_country_datas
before_action :set_country_data
def index
@country_datas = @country.country_datas
end
def show
@country_datas = @country.country_datas
end
def new
@country_data = @country.country_datas.build
end
def create
# @country_data = @country_data.countries.build(country_params)
@country_data = Country_data.all
@country_data.each do |a|
gem = Gem::Client.new.get_country_profile
gem.id = a.id
gem.country = a.country
gem.motto = a.motto
a.save!
end
end
private
def set_country_datas
@country_datas = Country.find(params[:id])
end
def set_country_data
@country_data = @country.country_data.find(params[:id])
end
def country_params
params.require(:country_data).permit(:id, :country, :motto)
end
end