我有这样一个协会:
association :address, :factory => [:address, :closer_address]
我的工厂是这样的:
factory :address do
address1 "12 Any Street"
latitude 22.4583397
longitude -11.06776
state 'pending_verification'
trait :closer_address do
latitude 33.4783397
longitude -11.06776
end
trait :verified do
state 'verified'
end
end
那么我可以以某种方式创建一个具有多个特征的关联吗?或者还有另一种方法吗?我的想法是,我希望closer_address
也经过验证,在另一种情况下,我可能希望closer_address
未经验证,这就是为什么要将它们分开。
有什么想法吗?
答案 0 :(得分:2)
您可以这样做有两个不同的特征选项:
factory :address do
address1 "12 Any Street"
latitude 22.4583397
longitude -11.06776
state 'pending_verification'
trait :closer_address do
latitude 33.4783397
longitude -11.06776
end
trait :verified_closer_address do
latitude 33.4783397
longitude -11.06776
state 'verified'
end
end
您可以像这样创建对象:
. . . :factory => [:address, :closer_address]
或者这个:
. . . :factory => [:address, :verified_closer_address]
或您可以在不更改当前工厂的情况下执行此操作:
factory :address do
address1 "12 Any Street"
latitude 22.4583397
longitude -11.06776
state 'pending_verification'
trait :closer_address do
latitude 33.4783397
longitude -11.06776
end
trait :verified do
state 'verified'
end
end
您可以像这样创建对象:
. . . :factory => [:address, :closer_address, :verified]
使用FactoryGirl创建对象时,可以同时使用多个特征。