讓我們考慮一個實際示例:由客戶編寫的具有許多評論的產品。我們有產品和客戶端到評論之間的多對多關係。Rails:如何在連接表中創建新條目
class Product < ActiveRecord::Base
has_many :reviews
has_many :clients, :through => :reviews
end
class Client < ActiveRecord::Base
has_many :reviews
has_many :products, :through => :reviews
end
class Reviews < ActiveRecord::Base
belongs_to :product
belongs_to :client
end
在這裏,我使用的has_many :through
創造了許多一對多的關係,因爲審查表需要有額外的屬性,如分數,內容,喜歡,...
用戶登錄到我的應用程序,這樣我就可以打通他的數據:
client = Client.find_by_id current_user.id
他去產品頁面,這樣我就可以得到產品數據:
product = Product.find_by_id params[:id]
如何創建客戶對產品的評論?
我想:
review = Review.create :client => client, :product => product, :comment => params[:review][:comment]
,但它給了我:MassAssignSecurity:不能大規模指派保護的屬性:產品,客戶
任何想法?提前致謝。
感謝Vilem。在我寫給prasad的時候,即使我在'* Review *'模型中添加'attr_accessible:product,:client',它仍然不起作用。 – htaidirt
我認爲你必須添加attr_accessible到你的類,而不是在模型模型中。 – Vilelm
對不起,我不明白。請問,你能更準確地通過更新你的答案,使用代碼來解釋哪個'attr_accessible:xxx'進入了哪個模型'Xxx'? – htaidirt