[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