首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ActiveRecord:如何获取可以批量赋值的模型的所有属性?

ActiveRecord:如何获取可以批量赋值的模型的所有属性?
EN

Stack Overflow用户
提问于 2009-10-06 14:49:02
回答 5查看 79.6K关注 0票数 79

我想要一个可以批量分配的所有属性名称的列表。我需要一个自定义的表单生成器,不会添加默认情况下,无法批量分配的输入字段。

例如,如果我有以下模型:

代码语言:javascript
复制
class Post < ActiveRecord::Base
  attr_protected :account

  belongs_to :author

  validates_presence_of :title, :author
end

我希望有一个结果是[:author, :title]

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-06 15:26:00

如果您显式定义了attr_accessible,Post.accessible_attributes将涵盖它

除非,做这样的事情很笨拙,但很管用:

代码语言:javascript
复制
Post.new.attributes.keys - Post.protected_attributes.to_a
票数 104
EN

Stack Overflow用户

发布于 2014-02-18 04:09:25

前面提到的一些答案可能不适用于Rails 4。

您可以使用MyModel.attribute_names获取表属性的数组,但是,这可能不会提供大量可分配的属性,因为Rails的这一方面在版本4 http://weblog.rubyonrails.org/2012/3/21/strong-parameters/中有所变化

票数 86
EN

Stack Overflow用户

发布于 2013-02-21 04:27:20

只需使用

代码语言:javascript
复制
Post.accessible_attributes

它将返回类的所有attributes accessible

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

https://stackoverflow.com/questions/1526066

复制
相关文章

相似问题

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