工場には2つのfactory_girlファクトリ、contact
とuser
があります。連絡先には、user
の外部キーであるdest_user_id
という属性がありますが、NULLでもかまいません。その属性については、user
ファクトリを使用して新しいユーザーを作成し、そのIDをdest_user_id
に割り当てたいとします。それを行う方法はありますか?工場の定義では、他の工場の属性を使用して属性を割り当てます。
0
A
答えて
0
外部キーがdest_user_id
の場合、モデル名と同じ関係になっていれば、アプローチを変更してはいけません。 contact
belongs_to
user
とuser
has_one
またはhas_many
contacts
どちらかと仮定すると、以下のように、あなたが欲しいものを達成することができます
まずファクトリを作成:
FactoryGirl.define do
factory :user do
Field 1
Field 2
# etc
end
factory :contact do
# Add only the minimum fields required to create a contact, but not the association
Field 1
Field 2
factory :contact_with_user do
# then you add the association for this inherited factory
# we can use 'user' here as the factory is the same as the association name
user
end
end
end
この設定を使用すると、user
なしcontact
を作成し、したがって、はNULL
となります。ユーザーがのテスト/スペック内にいるとします。
@user = FactoryGirl.create(:user)
@contact = FactoryGirl.create(:contact_with_user, :user => @user)
ユーザーの有無にかかわらずcontact
を作成し、あなたのことができますので、このアプローチは、柔軟性を最大化:user
を作成し、contact
次を使用する上でdest_user_id
フィールドにIDを割り当てるには
特定のテストに必要な場合にのみuser.id
を連絡先モデルに渡すことができます。あなたはその後、FactoryGirl.create(:contact_with_user)
を呼び出した場合の両方contact
とuser
が自動的に作成されますが、あなたは二つのモデル間のアソシエーションの名前は何
関連する問題
- 1. 工場の女の子の従属属性
- 2. 工場の女の子一意性検証は、関連工場
- 3. 従属要素の一連の工場
- 4. スマートクライアントソフトウェア工場ビュー活性化
- 5. ネストした工場で条件付き属性を作成する方法
- 6. 工場ガールはシンボルの代わりに文字列属性キーを持っていますか?
- 7. Railsの工夫 - 管理者役割、属性
- 8. 定義された関数をjavascriptのオブジェクト属性に割り当てる
- 9. 工場の特性を拡張することにより、Scalaコンパニオンオブジェクトを工場として使用します。より良い解決策?
- 10. キュウリとRspec工場工場の女の子工場
- 11. コールバックの属性割り当てが機能しません。
- 12. ミニセッション工場とrealsession工場
- 13. 工場パターンの使用
- 14. JQuery同じ要素の他の属性を使用して要素の属性を設定する方法
- 15. Pythonのインスタンスの__class__属性への割り当て
- 16. jQuery:属性の割り当てに関する問題
- 17. 環境内のリスト属性の割り当て
- 18. id属性のjquery selectorが未定義の場合
- 19. エラー:「属性クラスではありません」ConfigurationElementType属性を使用する場合
- 20. ハッシュを使用して、ユーザー定義の属性を作成します
- 21. 未定義の属性
- 22. 。データ割り当ての属性セレクタjQuery 1.7.1
- 23. 属性をコンパイル時のデータとして定義しますか?
- 24. 説明属性を使用してラベルテキストを割り当てることはできますか?
- 25. 工場を正しく使用していますか?
- 26. XSDを定義する際に属性よりも属性グループを使用する利点は何ですか?
- 27. 辞書から属性値を割り当てる
- 28. オブジェクト属性にテキストを割り当てる方法
- 29. 属性にプロパティを割り当てる方法
- 30. Linq toクリックイベントに属性を割り当てる
FactoryGirl.create(:contact_with_user, :user => @user)
を使用するときに持っているdest_user_id
の割り当てを制御できないであろうdest_user_idを記述する明確にするためにモデルの詳細を投稿してください。 – nmott私は、dest_user_idが外部キーであるという事実を追加しました。それはどうでもいい?この質問は 'user'の属性についても同じです。 – FrontierPsycho
潜在的な解決策を少し変更するので、外部キー名と共に関係名を変更していないことを確認したかっただけです。可能なアプローチは以下の通りです。 – nmott