मैं फैक्टरी लड़की/Rspec2/रेल 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
मैं समझता हूं कि विफलता का कारण यह है क्योंकि फैक्टरीगर्ल एक और संगठन (उसी नाम के साथ) बना रहा है।
लेकिन मैं जो करना चाहता हूं वह सभी संगठनों से जुड़ी कई सदस्यताएं तैयार करता है। मैं उसको कैसे करू?
धन्यवाद।
शॉन
धन्यवाद जेटेइक। मैंने इसका इस्तेमाल किया है यह अभी के लिए काम करता है। (हालांकि जब एक से अधिक संगठन हैं, मुझे लगता है कि मुझे एक और समाधान ढूंढना होगा .. किसी अन्य दिन के लिए एक और समस्या "। –