我有两个型号,用户和答案。我想在FactoryGirl创建Answer中生成user_id。我该怎么做呢?
FactoryGirl.define do
factory :user do
name { Faker::Name.name }
pasword { 'password' }
password_confirmation { |u| u.password }
end
end
以下是我到目前为止生成外部user_id(显然语法不正确)的原因:
FactoryGirl.define do
factory :answer do
description { Faker::Lorem.words }
user_id = FactoryGirl.create(:user)::user_id
end
end
答案 0 :(得分:2)
鉴于关联answer belongs_to: :user
,您可以在工厂定义中使用association
帮助器:
FactoryGirl.define do
factory :answer do
description { Faker::Lorem.words }
association :user
end
end
然后用法:
u = FactoryGirl.create(:user)
answer = FactoryGirl.create(:answer, user: u)
答案 1 :(得分:0)
您可以执行以下操作:
FactoryGirl.define do
factory :answer do
description { Faker::Lorem.words }
after(:build) do |answer, evaluator|
answer.user = create(:user) unless answer.user
end
end
end
如果在创建答案时未提供用户,则会创建新用户。