factory :foo do
bar # want this to use foo's id in calculating bar's value
# current solution
# ugly because it requires an extra save
after_create { |foo| foo.bar = foo.id; foo.save! }
# tried this too but foo.id is still nil at this point
# after_build { |foo| foo.bar = foo.id }
end
オブジェクトの作成時にオブジェクトのIDを処理する方が良いでしょうか?上記のシナリオでこれが発生しました。別のフィールドでFactoryGirlオブジェクトIDを使用していますか?
また、fooがfoo.idを使用するActiveRecord before_create_callbackを持つ別のシナリオもあります。 ARを使用すると、オブジェクトはコールバックが呼び出され、メソッドが期待どおりに動作するときにidを持ちます。 FGでは、コールバックが呼び出されたときにオブジェクトにidがないため、メソッドが期待どおりに動作しません。ここでも、私は余分な明示的な保存でafter_createに頼っています。
FactoryGirlオブジェクトの作成中にオブジェクトIDを処理するための提案やヒントは非常に高く評価されます。