再帰的なファクトリを作成する快適な方法を探しています。私のアプリでは、ユーザーには多くのソフトウェアがあり、n 件の関連ソフトウェアを持つユーザーを「一度に」作成したいと考えています。これは私のコードです:
FactoryGirl.define do
factory :user do |f|
f.sequence(:username) { |n| "user#{n}" }
end
trait :with_software do
ignore do
n 3
end
after :create do |user, evaluator|
FactoryGirl.create_list :software, evaluator.n, :user => user
end
ソフトウェアは以下のように定義されています
factory :software do |f|
f.sequence(:name) { |n| "software#{n}" }
f.association :user
end
私が数字のとき:
user1 = FactoryGirl.create(:user, :with_software)
FactoryGirls は、関連する 3 つのソフトウェア エントリを持つユーザーを作成します。問題は、ソフトウェア名が常に「software#{n}」であることです。一意のソフトウェア名を :user.name + "software#{n}" として指定するにはどうすればよいですか?