estoy usando fábrica de la muchacha/Rspec2/Rails 3.Factory Girl: ¿Cómo asociar un registro a otro registro sin crear un nuevo registro?
En factories.rb, que tengo:
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
y luego en mi prueba rspec tengo:
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
Cuando ejecuto la prueba, obtengo:
Failure/Error: @membership_request = Factory(:membership_request)
Validation failed: Name has already been taken
Entiendo que el motivo del error es porque FactoryGirl está creando otra organización (con el mismo nombre).
Pero lo que me gustaría hacer es crear varias membresías asociadas a la misma organización. ¿Cómo puedo hacer eso?
Gracias.
Sean
Gracias Zeteic. Yo he usado esto Funciona por ahora. (Aunque cuando hay más de una Org, creo que tendré que encontrar otra solución ... otro problema para otro día ". –