在PostsController中创建ActiveModel :: MassAssignmentSecurity :: Error

我差点在http://guides.rubyonrails.org/getting_started.html上完成第11步。 虽然我的标签有问题,但在尝试创建新post时我会继续这样做。

在PostsController中创建ActiveModel :: MassAssignmentSecurity :: Error

无法批量分配受保护的属性:tags_attributes Rails.root:/ Users / david / blog

应用程序跟踪| 框架跟踪| 完整跟踪app / controllers / posts_controller.rb:46:在new' app/controllers/posts_controller.rb:46:in创建’请求

参数:

  {"post"=>{"name"=>"David", "content"=>"Foobar", "title"=>"Programmer", "tags_attributes"=>{"0"=>{"name"=>"Tea, Cake"}}}, "utf8"=>"✓", "commit"=>"Create Post", "authenticity_token"=>"MhvAkAPcAey1Z4YXy7nKFmW/wETlu+USSvWOEBBN4po="} 

我已经遍历了包含标签实现的每一行代码,我无法弄明白。 我应该寻找什么指导?

谢谢。

在您的模型中,您需要将tag_attributes添加到attr_accessible调用。

例如 :

 class User < ActiveRecord::Base attr_accessible :tags_attributes end 

如果您已经调用过一次,则可以将此字段添加为方法的参数,或者再次调用。 两种选择都是等价的。

必须指定所有可访问的参数在几个月之前不是默认值。
本指南已更新,以反映默认更改。 但新版本尚未部署,这就是为什么没有指定。

请参阅安全性:批量分配

你可以试试这个,
在PostsController模型中添加表单中使用的所有属性,例如

  class PostsController < ActiveRecord::Base attr_accessible :name, :content, :title ... ... end 

这个对我有用。