Factory Girl のドキュメントでは、(私が推測するに) 親子関係を作成するためのこの構文を提供しています...
Factory.define :post do |p|
p.author {|a| a.association(:user) }
end
投稿はユーザー (「投稿者」) に属します。
User
多数の を含む を作成するためのFactory を定義したい場合はどうすればよいでしょうPost
か?
または、多対多の状況の場合はどうなるでしょうか (たとえば、以下の更新を参照)。
アップデート
私はそれを理解したと思った。私はこれを試しました...
Factory.define(:user) do |f|
f.username { Factory.next(:username) }
# ...
f.roles { |user|
[
Factory(:role),
Factory(:role, {:name => 'EDIT_STAFF_DATA'})
]
}
end
最初は機能しているように見えましたが、FG が同じユーザー名と電子メールでユーザーを 2 回保存しようとしたため、検証エラーが発生しました。
そこで、元の質問に戻ります。と のような多対多の関係がある場合、関連付けられた を返す Factory をどのように定義できますUsers
か? 一意でなければならないことに注意してください.FGを作成するたびにDBに新しい「ADMIN」を作成することはできません.Roles
Users
Roles
Roles
Role
User