3
我已經看過一些舊語法的例子,但我找不到使用新的3.x語法的例子(一個這樣的舊例子:factory girl multiple has_many through's)。FactoryGirl 3.x has_many通過關聯
模型
class RawPosition < ActiveRecord::Base
has_many :position_translations
has_many :specific_positions, through: :position_translations
end
class SpecificPosition < ActiveRecord::Base
has_many :position_translations
has_many :raw_positions, through: :position_translations
end
class PositionTranslation < ActiveRecord::Base
belongs_to :raw_position
belongs_to :specific_position
end
工廠
factory :raw_poisition_multiple, class: RawPosition do
raw_input "WR/QB"
sport_type_id 5
after_create do |a|
#a.specific_positions.create({specific_position: "WR"})
#a.specific_positions.create({specific_position: "QB"})
FactoryGirl.create(:specific_position, raw_position: a)
FactoryGirl.create(:qb_specific_position, raw_position: a)
end
end
factory :specific_position do
specific_position "WR"
end
factory :qb_specific_position do
specific_position "QB"
end
規格
describe "WR/QB" do
before do
@player.player_dict['POS'] = "WR/QB"
FactoryGirl.create(:raw_poisition_multiple)
@player.clean_position(@player_to_team_history)
end
....
end
如果我取消從raw_position_multiple
工廠的線條和註釋掉after_create
塊FactoryGirl
線,工作的事情精細。我只想使用工廠來創建關聯。
絕對救生員!花了數小時試圖弄清楚爲什麼協會的另一端無法正常工作! – concept47 2013-01-12 03:13:45