rails中的质量分配问题

我正在阅读下面这篇文章。 http://tutorials.jumpstartlab.com/projects/blogger.html#i2:-adding-comments

下面是我们创建一个新的Comment对象并与相应article associate的代码。

 @comment = Comment.new @comment.article_id = @article.id 

任何人都可以解释一下作者试图在下面说的话。 任何人都可以告诉我如何在没有安全事情的情况下做更好的理解。

由于Rails的质量分配保护,需要手动为新的Comment对象的article_id属性分配Articleid

您正在阅读的文章是指rails attr_accessible 3不使用像Rails 4这样的强参数,而是使用attr_accessible和允许批量分配的属性列表。

ruby中的大量赋值是在newcreateassign_attributes等方法中使用哈希一次设置多个变量的所有内容。 通常,允许批量分配外键并不是一个好主意。

总之,作者意味着这两行不能写成:

 @comment = Comment.new(article_id: @article.id) 

由于article_id未在attr_accessible列出,因此会引发Mass Assignment安全性exception。