これはこの質問の続きです: Factory_Girl が一意のレコードを生成していません
要件レコードが作成されない理由は、ユーザー レコード (または少なくとも関連付け) が適切に作成されていないためです。
次の工場があるとします。
factory :user do
sequence(:name) { |n| "foo#{n}" }
password "fooBar_1"
email { "#{name}@example.com" }
app_setting
factory :adminUser do |user|
user.role_assignments { |ra| [ra.association(:adminAssignment)] }
end
factory :reader do |user|
user.role_assignments { |ra| [ra.association(:readerAssignment)] }
end
end
factory :role_assignment do
factory :adminAssignment do |ra|
ra.association :role, factory: :adminRole
end
factory :readerAssignment do
association :role
end
end
factory :role do
roleName "reader"
factory :adminRole do |r|
r.roleName "Administrator"
end
end
次のコード スニペットは、"Administrator" の roleName を持つ関連するロール レコードを持つ、関連する role_assignment レコードを持つユーザーを生成する必要があります。
user = FactoryGirl.create(:adminUser)
これは実際には Rails コンソールで機能します。レコードは期待どおりにデータベースに作成されます。ただし、セットアップ中にコード行が実行されると、レコードは保存されず、役割の割り当てに依存するテストは失敗します。
レコードがコミットされていない理由を突き止めるためにどこを探すべきかについての提案はありますか?