次のように、テスト用のファクトリを定義しようとしています。
factory :content do
id
name
after(:create) do |content|
create(:title, :title_id => content.id)
end
end
# --------------
factory :title do
title_id
title_name
after(:create) do |title|
create(:some_other_model, :this_id => title.title_id)
end
end`
したがって、基本的に、テスト用のデータを含む5つのテーブルを設定したいと思います。これは、挿入される次のレコードが前のレコードのIDを持つことができるように、特定の順序で実行する必要があります。これは、上記で定義したファクトリで、次のような 1 つの呼び出しだけで可能です。ファクトリで定義されているように、FactoryGirl.create(:content)
内部的に呼び出しを行っているためです。
ここで、同じことを行いたいが、スタック内のより深い属性に特定の値を設定したいとします (たとえば:some_other_model.name => 'Name')
、これを行うにはどうすればよいでしょうか?