[Ror-es] Validar insercion de multiples registros

Ruben Alexis D. ruben at tiperu.com
Tue Apr 3 21:17:40 GMT 2007


Saludos amigos, actualmente tengo un esquema algo complicado con mis
modelos y necesitaba manejar todos desde un mismo formulario, me
explico:
- Un producto tiene muchos tamaños:
class Producto < AR...
 has_many :tamanos
end
- Un tamano pertenece a un producto y ademas tiene muchos campos:
class Tamano < AR...
 belongs_to :producto
 has_many :campos
end
- Un campo pertenece a un tamano
class Campo
 belongs_to :tamano
end

Bueno mis modelos andan algo asi, he logrado que se pueden insertar "n"
tamaños y a la vez "n" campos para cada tamaño:

def create
 @producto = Producto.new(params[:producto])
 if @producto.valid?
  campos=params[:campos].values
  params[:tamanos].each {|kt,vt|
   @tamano=@producto.tamanos.create(vt)
   campos_tamano=campos.select{|v| v[:t_key]==kt}
   @tamano.campos.create(campos_tamano) if campos_tamano.size >= 1
  }
 end
end

Bueno basicamente he trabajado con indices en los campos del formulario,
me guie de aqui: http://railsforum.com/viewtopic.php?id=1065 , todo esta
bien, pero al momento de hacer los insert solo estoy validando el
producto mas no los demas objetos como Tamano y Campo, es logico que las
validaciones van en los modelos, pero si me llegaria a fallar una
entonces solamente se grabarian algunos registros lo cual no es la idea,
ojala alguien  me pueda ayudar con una manera elegante de realizar esa
validacion.

Muchas gracias.
Ruben.



More information about the Ror-es mailing list