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
