工厂女孩文档提供了创建(我猜)父子关联的语法...
起初看起来似乎可以工作,但后来我收到了验证错误,因为F.G.试图使用相同的用户名和电子邮件保存用户两次。
所以我回到了最初的问题。如果你有一个多对多的关系,比如说
Factory.define :post do |p|
p.author {|a| a.association(:user) }
end
一篇文章属于一个用户(即“作者”)。
如果您想定义一个工厂来创建具有许多帖子的用户,该怎么办?
或者如果是多对多的情况呢(请参见下面的更新示例)?
更新
我以为我已经想出来了。我尝试了这个...
Factory.define(:user) do |f|
f.username { Factory.next(:username) }
# ...
f.roles { |user|
[
Factory(:role),
Factory(:role, {:name => 'EDIT_STAFF_DATA'})
]
}
end
起初看起来似乎可以工作,但后来我收到了验证错误,因为F.G.试图使用相同的用户名和电子邮件保存用户两次。
所以我回到了最初的问题。如果你有一个多对多的关系,比如说
Users
和Roles
,你如何定义一个工厂来返回带有一些相关联的Roles
的Users
?需要注意的是,Roles
必须是唯一的,所以我不能让F.G.每次创建一个User
时在数据库中创建一个新的"ADMIN"Role
。