首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails模式搭建

Rails模式搭建
EN

Stack Overflow用户
提问于 2013-05-10 18:34:16
回答 3查看 186关注 0票数 0

我有一个学校的项目,我有点困惑如何制作标签和分类相关的帖子,所以当我在谷歌中寻找一些技巧时,我找到了这个 thread。所以我尝试了如上所述的脚手架,它工作得很好,但当我运行服务器并试图创建新帖子时,出现了以下内容:

PostsController#create中出现ActiveModel::批量分配安全::错误

无法批量分配受保护的属性:类别、用户

所以我真的不知道哪里出了问题,但我需要一些帮助。或者可以建议另一种方式,让如何用标签和类别搭建帖子变得更简单。

非常感谢

以下是模型:

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2013-05-10 18:41:23

在post模型中添加attr_accessible

代码语言:javascript
复制
class Post < ActiveRecord::Base
  attr_accessible :category_id, :user_id, :other_attributes_from_post_model
end
票数 2
EN

Stack Overflow用户

发布于 2013-05-10 18:39:47

尝试在您的post模型中设置attr_accessible :category_id, :user_id

票数 1
EN

Stack Overflow用户

发布于 2013-05-10 18:51:04

默认情况下,Rails创建的脚手架模型的所有属性都是不可访问的,因此外部用户无法编辑它们。

因此,当您尝试创建新的Post时,会出现错误消息,因为类别和用户都是Post的受保护属性。

您应该查看应用程序/ models /post.rb和同一文件夹中的其余模型,以将外部用户(例如web用户)可以编辑的属性定义为可访问的属性。

代码语言:javascript
复制
class Post < ActiveRecord::Base
  attr_accessible :category_id, :user_id
end

另一方面,可访问的属性对于外部编辑不再受保护,因此您不应该对所有这些属性都使用attr_accessible,而应该只对那些您真正允许在外部修改的属性使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16480319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档