如何更新工厂女孩中的嵌套属性值
How to updated nested attribute value in factory girl
我们有一个正在开发嵌套关系的工厂
FactoryGirl.define do
factory : user do
name "Arvind"
association :campaign
factory :user_with_photos do
after(:build) do |user|
user.photos.build name: 'user 1',
user.photos.build name: 'user 2', position: 2
end
end
factory :user_with_mandatory_photos do
after(:build) do |user|
user.photos.build name: 'user 3', mandatory: true
user.photos.build name: 'user 4', mandatory: true
end
end
factory :user_with_mandatory_photos do
after(:build) do |user|
user.photos.build name: 'user 5', mandatory: false
user.photos.build name: 'user 6', mandatory: false
end
end
end
end
我们正在创建类似
的属性
users = FactoryGirl.create(:user_without_mandatory_fields, campaign: @campaign)
users = FactoryGirl.create(:user_with_mandatory_fields, campaign: @campaign)
我们希望减少这种情况并仅使用
factory : user do
name "Arvind"
association :campaign
factory :user_with_photos do
after(:build) do |user|
user.photos.build name: 'user 1',
user.photos.build name: 'user 2', position: 2
end
end
end
但我们不知道如何在这种情况下使用必填字段创建用户照片。谁能推荐一下?
Looking something like users = FactoryGirl.create(:user_with_photos,[update user photo attribute make mandatory true ] campaign: @campaign)
通过创建新的照片对象解决了这个问题
photos = FactoryGirl.create_list(:photo, 12, mandatory: true)
users = FactoryGirl.create(:use, :photos, campaign: @campaign)
我们有一个正在开发嵌套关系的工厂
FactoryGirl.define do
factory : user do
name "Arvind"
association :campaign
factory :user_with_photos do
after(:build) do |user|
user.photos.build name: 'user 1',
user.photos.build name: 'user 2', position: 2
end
end
factory :user_with_mandatory_photos do
after(:build) do |user|
user.photos.build name: 'user 3', mandatory: true
user.photos.build name: 'user 4', mandatory: true
end
end
factory :user_with_mandatory_photos do
after(:build) do |user|
user.photos.build name: 'user 5', mandatory: false
user.photos.build name: 'user 6', mandatory: false
end
end
end
end
我们正在创建类似
的属性 users = FactoryGirl.create(:user_without_mandatory_fields, campaign: @campaign)
users = FactoryGirl.create(:user_with_mandatory_fields, campaign: @campaign)
我们希望减少这种情况并仅使用
factory : user do
name "Arvind"
association :campaign
factory :user_with_photos do
after(:build) do |user|
user.photos.build name: 'user 1',
user.photos.build name: 'user 2', position: 2
end
end
end
但我们不知道如何在这种情况下使用必填字段创建用户照片。谁能推荐一下?
Looking something like users = FactoryGirl.create(:user_with_photos,[update user photo attribute make mandatory true ] campaign: @campaign)
通过创建新的照片对象解决了这个问题
photos = FactoryGirl.create_list(:photo, 12, mandatory: true)
users = FactoryGirl.create(:use, :photos, campaign: @campaign)