我使用工廠女孩/ Rspec2/Rails的3工廠女孩:如何將記錄與另一條記錄關聯而不創建新記錄?
在factories.rb,我有:
Factory.define :user do |user|
user.name 'Some guy'
user.email '[email protected]'
user.password 'password'
end
Factory.define :org_admin, :parent => :user do |user|
user.email '[email protected]'
end
Factory.define :user_with_membership_request, :parent => :user do |user|
user.email '[email protected]'
end
Factory.define :organization do |org|
org.name 'MEC'
org.description 'Mountain Equipment Co-op'
end
Factory.define :membership do |membership|
membership.user { Factory(:user) }
membership.organization { Factory(:organization) }
end
Factory.define :admin_membership, :parent => :membership do |membership|
membership.user { Factory(:org_admin) }
membership.is_admin true
membership.status 'active'
end
Factory.define :membership_request, :parent => :membership do |membership|
membership.user { Factory(:user_with_membership_request) }
membership.status 'requested'
end
,然後在我的RSpec的測試我有:
it 'should accept the membership request' do
@org_admin = Factory(:org_admin)
test_sign_in(@org_admin)
@organization = Factory(:organization)
@membership_request = Factory(:membership_request)
put :update, :organization_id => @organization.id, :id => @membership_request.id, :acceptance => 'approve'
...
end
當我運行測試時,我得到:
Failure/Error: @membership_request = Factory(:membership_request)
Validation failed: Name has already been taken
我明白失敗的原因是因爲FactoryGirl正在創建另一個組織(具有相同的名稱)。
但我想要做的是創建與同一組織關聯的多個成員。我怎麼做?
謝謝。
肖恩
謝謝Zeteic。我用過這個。它現在工作。 (雖然當有不止一個組織時,我想我需要找到另一個解決方案......另一個問題是另一天「。 – 2010-10-27 20:38:19