Considérese la siguiente asociación:Rails 3: ¿Cómo funciona "accepts_nested_attributes_for"?
class Product < ActiveRecord::Base
belongs_to :shop
accepts_nested_attributes_for :shop
end
Si
params[:product][:shop_attributes] = {"name" => "My Shop"}
y yo: se crea y se asigna al @product
@product = Product.new(params[:product])
@product.save
una nueva tienda con el nombre "Mi Tienda", como se esperaba.
Sin embargo, no puedo imaginar lo que sucede cuando shop_attributes
contiene algunos id
, como:
params[:product][:shop_attributes] = {"id" => "20", "name" => "My Shop"}
me sale el siguiente error:
Couldn't find Shop with ID=20 for Product with ID=
Pregunta 1
Qué significa esto ?
Pregunta 2
Si este es el caso, es decir, el id
de la tienda se sabe, y la tienda con tanta id
ya existen, cómo debo crear el @product
tal que se asigna esta tienda a eso ?
¿Alguna idea de cómo funciona esto si un producto tiene varias tiendas? Como 'params [: product] [: shops_attributes] = {" 0 "=> {" id "=>" 20 "," name "=>" Mi tienda "}," 1 "=> {...}} ¿? ¡Gracias! – Cimm
Usando la metodología 'params [: product] [: shop_id]', puede hacer: 'params [: product] [: shop_ids] = [20,23,27]' –