在我的喜欢中。我有:
class Like < ActiveRecord::Base
attr_accessible :liked, :product_id, :user_id
end
在我的控制器中我有:
@like = Product.new(:product_id => params[:id].to_i, :user_id => current_user.id, :liked => "Yes")
@like.save
但是我收到一条错误消息,指出无法批量分配受保护的属性:product_id,user_id,likes。关于如何解决这个问题的任何建议?
答案 0 :(得分:2)
您似乎已在Like
模型上将属性设置为可访问,但您尝试在Product
模型上进行批量分配。如果你在那里设置attr_accessible
,你会发现事情会更好。
答案 1 :(得分:1)
@ Chowlett的回答是正确的。如果要分配固定的属性集(如示例中所示),则可以使用without_protection
标志:
@like = Product.new({product_id: params[:id].to_i, user_id: current_user.id, liked: 'Yes'}, without_protection: true)