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|
@[email protected](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.