Factory Girl を使用して、それぞれが 1 つまたは 2 つの属性のみ異なるモデルの大規模なコレクションを生成したいと考えています。
ファクトリにモデルのインスタンスを受け入れる方法はありますか? 理想的には、私はしたいです
before(:all) do
data1 = create(:instance,
:attribute_1 => 1,
:attribute_2 => 2,
:attribute_3 => "something",
:attribute_4 => "something else",
:attribute_5 => 5
...
)
data2 = create(:instance,
:attribute 2 => 15,
base: data1
)
end
data2 は data1 のクローンとして初期化され、上書きしたい新しい属性を指定するだけで済みます。
一時的な属性を使用してみましたが、次のようなものを実装する方法がわかりません:
FactoryGirl.define do
factory :instance do
ignore do
base nil
end
attribute_1 { base.nil? ? argument.attribute_1 : base.attribute_1 + argument.attribute_1 }
attribute_2 { base.nil? ? argument.attribute_2 : base.attribute_2 + argument.attribute_1 }
...
end
end
私はこれに完全に間違った方法でアプローチしていますか?