从Gem保存到Rails数据库

时间:2016-08-23 01:04:23

标签: ruby-on-rails database rubygems

我正在努力使其尽可能通用,以帮助他人。

我正在从宝石中检索某些数据,如:

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

0 个答案:

没有答案