我有一个学校的项目,我有点困惑如何制作标签和分类相关的帖子,所以当我在谷歌中寻找一些技巧时,我找到了这个 thread。所以我尝试了如上所述的脚手架,它工作得很好,但当我运行服务器并试图创建新帖子时,出现了以下内容:
PostsController#create中出现ActiveModel::批量分配安全::错误
无法批量分配受保护的属性:类别、用户
所以我真的不知道哪里出了问题,但我需要一些帮助。或者可以建议另一种方式,让如何用标签和类别搭建帖子变得更简单。
非常感谢
以下是模型:
class Post < ActiveRecord::Base
belongs_to :category
belongs_to :user
attr_accessible :body, :title, :category, :user
end
class Category < ActiveRecord::Base
attr_accessible :name
end
class Serie < ActiveRecord::Base
attr_accessible :name, :website
end
class Tag < ActiveRecord::Base
attr_accessible :name
end
class TagsSerie < ActiveRecord::Base
belongs_to :serie
belongs_to :tag
# attr_accessible :title, :body
end
class TagsPost < ActiveRecord::Base
belongs_to :post
belongs_to :tag
# attr_accessible :title, :body
end
class User < ActiveRecord::Base
attr_accessible :email, :password
end发布于 2013-05-10 18:41:23
在post模型中添加attr_accessible:
class Post < ActiveRecord::Base
attr_accessible :category_id, :user_id, :other_attributes_from_post_model
end发布于 2013-05-10 18:39:47
尝试在您的post模型中设置attr_accessible :category_id, :user_id。
发布于 2013-05-10 18:51:04
默认情况下,Rails创建的脚手架模型的所有属性都是不可访问的,因此外部用户无法编辑它们。
因此,当您尝试创建新的Post时,会出现错误消息,因为类别和用户都是Post的受保护属性。
您应该查看应用程序/ models /post.rb和同一文件夹中的其余模型,以将外部用户(例如web用户)可以编辑的属性定义为可访问的属性。
class Post < ActiveRecord::Base
attr_accessible :category_id, :user_id
end另一方面,可访问的属性对于外部编辑不再受保护,因此您不应该对所有这些属性都使用attr_accessible,而应该只对那些您真正允许在外部修改的属性使用。
https://stackoverflow.com/questions/16480319
复制相似问题