2010/10/5 Ernesto Tagwerker <[email protected]>:
>> Quizas no me expresé bien.. no tengo problemas para crear los objetos
>> de ClaseB con nombres distintos.. donde SI hay problema, es que
>> factory_girl quiere hacer un create del objeto de ClaseC relacionado
>> con esos objetos ClaseB y entonces, salta la validacion de uniqueness
>> en ClaseC.
>>
>> Me explico?
>
> Sí, no había entendido bien.
>
> Y si hacés algo así?
>
> objeto_c = Factory.create(:clase_c_valida)
> objeto_b = Factory.create(:clase_b, :clase_c => objeto_c)
>
> Porque con el código que mandaste:
>
> Factory.define :clase_b_valida, :class => ClaseB do |f|
> f.association :clase_c, :factory => :clase_c_valida
> end
>
> Cuando hagas:
>
> Factory.create(:clase_b_valida)
>
> Va a crearte una instancia nueva de clase_c cada vez que lo llames. Y por
> eso te va a pinchar.
Exacto. Eso es lo que pasaba.
Lucas Florio me contactó por privado, y me sugirio la siguiente
solucion (muy parecida a la tuya, solo que lo pone en un after_create.
Factory.define :objeto_a, :class => ObjetoA do |o|
o.after_create do |oa|
objeto_c = Factory.create :objeto_c # este es único
oa.objectos_b = [
Factory.build :objecto_b, :objeto_c => objeto_c
]
end
end
El problema, es que ahora me está tirando el siguiente error..
undefined method `each' for nil:NilClass
/usr/local/rvm/gems/ree-1.8.7-2010.02/gems/activerecord-2.3.4/lib/active_record/associations/association_collection.rb:320:in
`replace'
Voy a seguir investigandolo y les cuento..
Gracias.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar