Sto usando Factory Girl/Rspec2/Rails 3.Factory Girl: come associare un record a un altro record senza creare un nuovo record?
In factories.rb, ho:
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
e poi nel mio test rspec ho:
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
Quando eseguo il test, ottengo:
Failure/Error: @membership_request = Factory(:membership_request)
Validation failed: Name has already been taken
Comprendo che il motivo dell'errore è dovuto al fatto che FactoryGirl sta creando un'altra organizzazione (con lo stesso nome).
Ma quello che mi piacerebbe fare è creare diversi abbonamenti tutti associati alla stessa organizzazione. Come lo faccio?
Grazie.
Sean
Grazie Zeteic. L'ho usato. Funziona per ora. (anche se c'è più di una Org, credo che dovrò trovare un'altra soluzione .. un altro problema per un altro giorno ". –