On Oct 5, 2010, at 10:46 AM, Mariano Ayesa wrote:

Que tal?

Requiero de su ayuda, ya que hay algo que definitivamente no estoy
entendiendo al querer usar factory_girl. Estoy usando rspec para
testear una app rails.

Acá pongo una simplificacion del problema.

class ClaseA
 has_many :clases_b
end

class ClaseB
 belongs_to :clase_a
 belongs_to :clase_c
end

class ClaseC
 validates_uniqueness_of :nombre
end

La cuestion, es que defino las factories por ej.

Factory.define :clase_a_valida, :class => ClaseA do |f|
 f.clases_b {|cb| [ cb.association(:clase_b_valida, :nombre => 'un
objeto b'), :clase_b_valida, :nombre => 'otro objeto b')]}
end

Factory.define :clase_b_valida, :class => ClaseB do |f|
 f.association :clase_c, :factory => :clase_c_valida
end

Factory.define :clase_c_valida, :class => ClaseC do |f|
 f.nombre 'un objeto c'
end

Cuando se crea una clase_a_valida, yo necesito que los objetos de
ClaseB tengan nombres distintos, pero que todos tengan una relacion
belongs_to al mismo objeto de ClaseC.

Creo que podés hacer eso así:

Factory.define :clase_b do |u|
  u.sequence(:name) {|n| "first_#{n}"}

etc...


El problema, es que cuando quiero crear una clase_a_valida salta error
en la validacion de uniqueness del nombre, en la clase C. Yo no quiero
crear nuevas clases C (donde SI deberia aplicar la validacion), sino
que se referencie siempre a la misma clase C.. me explico?

Que estoy haciendo/pensando mal? Como deberia hacerlo/pensarlo?

Al usar un factory con un sequence te va a crear objetos de clase_b con nombres diferentes.

Saludos,

Ernesto Tagwerker
http://etagwerker.com


Gracias.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a