在我的应用程序中,一个产品有很多意见,由许多客户编写。以下是具有关联的模型:
class Product < ActiveRecord::Base
attr_accessible :name, :desc, :price
has_many :opinions
end
class Client < ActiveRecord::Base
attr_accessible :name, :bio
has_many :opinions
end
class Opinion < ActiveRecord::Base
attr_accessible :rate, :comment
belongs_to :client, :product
end
在参数中,我有评估邀请 id,它可以帮助我获取 product_id 和 client_id(所以考虑一下我同时拥有它们)。
该表单仅包含速率(radio_button,从 1 到 5)和评论(text_field)。
opinion#create 方法如何创建新的意见,它属于两种模型:客户和产品?
我尝试直接传递 client_id 和 product_id,但出现 MassAssignment 错误:
# Remember: I have product_id and client_id
product = Product.find_by_id product_id
opinion = product.opinions.build params[:opinion]
opinion.product_id = product_id
opinion.client_id = client_id
opinion.save
以防万一它有用:在我的应用程序的第一个版本中,意见仅属于产品,使用上面的代码(删除opinion.client_id = client_id
行)效果很好,这就是我用来product
构建意见的原因)。所以,这只是一个增强。
任何的想法?提前致谢。