Ruby on rails 种子使用质量分配有许多关系

Ruby on rails 种子使用质量分配有许多关系,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,mass-assignment,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Mass Assignment,以下是我的两个模型: class Article < ActiveRecord::Base attr_accessible :content has_many :comments end class Comment < ActiveRecord::Base attr_accessible :content belongs_to :article end 但是,rake db:seed给了我以下错误消息: rake aborted! Comment(#2846756

以下是我的两个模型:

class Article < ActiveRecord::Base
  attr_accessible :content
  has_many :comments
end

class Comment < ActiveRecord::Base
  attr_accessible :content
  belongs_to :article
end
但是,rake db:seed给了我以下错误消息:

rake aborted!
Comment(#28467560) expected, got Hash(#13868840)

Tasks: TOP => db:seed
(See full trace by running task with --trace)
可以像这样为数据库种子吗

如果是的话,还有一个问题:我已经搜索了一些,似乎是为了做这种嵌套?质量分配我需要为我要分配的属性添加“接受嵌套属性”。对于注释模型,可能类似于“接受\u嵌套的\u属性\u for:article”


是否有一种类似于“无保护:真”的方法?因为我只希望在为数据库设定种子时接受这种大规模分配。

您看到此错误的原因是,当您将关联模型分配给另一个模型时,如@article.comment=comment中所示,右侧应该是实际对象,而不是对象属性的散列

如果要通过为注释传递参数来创建文章,则需要包括 接受文章模型中注释的嵌套属性,并将注释属性添加到属性可访问列表中

这应该考虑到你上面写的内容

我不相信有条件的质量分配是可能的,因为这可能会从设计的角度损害安全性


编辑:您还需要将注释:[{content:It sucks},{content:Best article ever!}]更改为注释属性:[{content:It sucks},{content:Best article ever!}]

出现此错误的原因是,当您将关联模型分配给另一个模型时,如@article.comment=comment中所示,右侧应该是实际对象,而不是对象属性的散列

如果要通过为注释传递参数来创建文章,则需要包括 接受文章模型中注释的嵌套属性,并将注释属性添加到属性可访问列表中

这应该考虑到你上面写的内容

我不相信有条件的质量分配是可能的,因为这可能会从设计的角度损害安全性


编辑:您还需要将注释:[{content:It sucks},{content:Best article ever!}]更改为注释属性:[{content:It sucks},{content:Best article ever!}]

谢谢,这很有效。现在唯一的问题是没有保护:真的不再需要了。我真的不喜欢公开更多的模型,只是为了更方便地为数据库种子:/此处公开的唯一新属性是:comment\u属性,并且由于这些属性只是转发到comment模型,其中唯一可访问的属性是:content,实际上,您没有比以前公开更多的模型。换句话说,:comments\u属性实际上不是模型的一部分,而是模型属性的散列,碰巧可以访问这些属性。@cdesrosiers我怎样才能为这个答案给您买杯啤酒??这件事我已经讨论了好几个小时了。非常感谢。谢谢,它起作用了。现在唯一的问题是没有保护:真的不再需要了。我真的不喜欢公开更多的模型,只是为了更方便地为数据库种子:/此处公开的唯一新属性是:comment\u属性,并且由于这些属性只是转发到comment模型,其中唯一可访问的属性是:content,实际上,您没有比以前公开更多的模型。换句话说,:comments\u属性实际上不是模型的一部分,而是模型属性的散列,碰巧可以访问这些属性。@cdesrosiers我怎样才能为这个答案给您买杯啤酒??这件事我已经讨论了好几个小时了。非常感谢。
rake aborted!
Comment(#28467560) expected, got Hash(#13868840)

Tasks: TOP => db:seed
(See full trace by running task with --trace)