2010/10/5 Mariano Ayesa <[email protected]>:
>> 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..

Bueno.. no sé por que no anda en el after_create. Me cansé, y lo que
hago es hacer lo mismo que está en el after_create, pero en el test a
mano en un before :each.

Gracias Lucas, Ernesto y a toda la lista!
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a