【发布时间】:2012-08-30 12:54:16
【问题描述】:
让我们考虑一个实际示例:由客户撰写的有很多评论的产品。我们通过 reviews 在 product 和 client 之间建立了多对多的关系。
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 来创建多对多关系,因为review 表需要有额外的属性,比如分数、内容、喜欢... .
用户登录我的应用,我可以通过以下方式获取他的数据:
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:无法批量分配受保护的属性:产品、客户
有什么想法吗?提前致谢。
【问题讨论】:
标签: ruby-on-rails many-to-many model-associations