ruby-on-rails - 对 FactoryGirl 使用不同的外键

标签 ruby-on-rails ruby-on-rails-3 factory-bot

简而言之:我想创建一个使用与指定外键和主键关联的工厂。

详细说明:

这些是我正在使用的模型:

class Event < ActiveRecord::Base  
  belongs_to :municipality, :foreign_key => :municipality_code, :primary_key => 'code'
  ...
end

class Municipality < ActiveRecord::Base
  has_many :events, :foreign_key => 'municipality_code', :primary_key => 'code'
  ...
end

我尝试以这种方式创建工厂:
FactoryGirl.define do
  factory :event do 
    sequence(:name){|n| "Event-#{n}"}
    ...
    municipality 
  end
end

但它不使用外键 市政代码在事件和主键中定义 代码市政府定义。
创建与 FactoryGIrl 的关联时,有没有办法指定不同的外键和主键?

谢谢你的时间!

最佳答案

我解决它的方法是自己管理关系。不确定这是否是最好的答案,但它对我有用。

FactoryGirl.define do
  factory :event do
    sequence(:name){|n| "Event-#{n}"}
  end
  factory :municipality do 
    after(:create) do |m, eval|
      # create one or many here...
      FactoryGirl.create(:event, municipality_code: m.code)
    end
  end
end

关于ruby-on-rails - 对 FactoryGirl 使用不同的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256209/

相关文章:

ruby-on-rails - 欢迎#index 中的 ExecJS::ProgramError

javascript - Rails 3 设备 : destroy localStorage and sessionStorage when logout?

ruby-on-rails - 在 Rails 中,我如何测试在 Controller 中对模型实例所做的修改?

cucumber - 测试 Rails 3.1 模型创建时的 ActionDispatch::ClosedError (RSpec/Cucumber)

javascript - Ajax 调用 Rails 返回缺少模板

ruby-on-rails - capistrano3 : Don't know how to build task 'deploy:create_db'

ruby-on-rails - Rails 应用程序模板正在运行代码并且适合

ruby-on-rails-3 - 我应该如何将 after_create 与模型中的条件一起使用

ruby-on-rails - 无法让 factory_girl 在 rails 3.0.5 下运行,意外的 tCONSTANT

ruby-on-rails - rails 4 : Set enum field through FactoryGirl attributes