3

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

详细说明:

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

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

但它没有使用 Event 中定义的 foreign_key urbanity_code和 Municipality中定义的主键代码。在创建与 FactoryGIrl 的关联时,有没有办法指定不同的外键和主键?

谢谢你的时间!

4

1 回答 1

1

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

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
于 2013-07-12T20:06:21.543 回答