Factory.define(:player) do |u|
u.association(:owner), :factory => :user
u.association(:updater), :factory => user
end
我可以重写上面的定义,这样我就可以将所有者和更新者的值初始化为相同,而无需在调用 create 时显式传递它们
Factory.define(:player) do |u|
u.association(:owner), :factory => :user
u.association(:updater), :factory => user
end
我可以重写上面的定义,这样我就可以将所有者和更新者的值初始化为相同,而无需在调用 create 时显式传递它们
Factory.define(:player) do |uu|
uu.association(:owner), :factory => :user
uu.association(:updater), { |player| player.owner }
end
after_create
在定义关联时,我经常发现使用orafter_build
钩子之一更容易:
Factory.define(:player) do |u|
after_build do |player|
user = FactoryGirl.create :user
player.owner = user
player.creator = user
end
end
我通常也尝试设置我的工厂,以便无论我是在构建(实例化)还是创建(实例化和保存)它们都可以工作,但是 ActiveRecord 对于你在构建时如何设置关联有点挑剔,所以我在这个例子中使用了 create 。