考慮以下關聯關係:Rails 3:「accepts_nested_attributes_for」如何工作?
class Product < ActiveRecord::Base
belongs_to :shop
accepts_nested_attributes_for :shop
end
如果
params[:product][:shop_attributes] = {"name" => "My Shop"}
和我做的:創建並分配給@product
@product = Product.new(params[:product])
@product.save
名稱爲 「我的店」 的新店鋪,如預期。
不過,我想不通的時候shop_attributes
包含一些id
,就像發生了什麼:
params[:product][:shop_attributes] = {"id" => "20", "name" => "My Shop"}
我得到以下錯誤:
Couldn't find Shop with ID=20 for Product with ID=
問題1
這是什麼意思?
問題2
如果是這種情況,即店鋪的id
是已知的,並且這樣的id
已經存在的店,我應該如何創建@product
,使得這個店將入駐它呢?
任何想法如果一個產品有多個商店如何工作?像'params [:product] [:shops_attributes] = {「0」=> {「id」=>「20」,「name」=>「My Shop」},「1」=> {...}} '?謝謝! – Cimm 2011-06-29 13:52:51
使用'params [:product] [:shop_id]'方法,你可以這樣做:'params [:product] [:shop_ids] = [20,23,27]' – 2013-10-11 17:23:22