如何获取可以批量分配的activerecord模型的属性列表
我想有一个可以批量分配的所有属性名称的列表。 我需要这个自定义表单生成器,不会添加输入字段默认情况下,不能批量分配。 例如,如果我有一个模型,如:
class Post < ActiveRecord::Base attr_protected :account belongs_to :author validates_presence_of :title, :author end 我想作为一个结果列表包含:作者,:标题。
任何想法,如果这种方法存在? 或者我可以如何制作一个这样的指南?
如果你明确定义了attr_accessible,Post.accessible_attributes会覆盖它
除此之外,做这样的事情是笨重的,但工作:
 Post.new.attributes.keys - Post.protected_attributes.to_a 
前面提到的一些答案可能不适用于Rails 4。
 您可以使用MyModel.attribute_names来获取表格属性数组,尽pipe这可能不会给您可分配的属性,因为Rails的这一方面随版本4而变化http://weblog.rubyonrails.org/2012/3/21/强大的参数/ 
只是使用
 Post.accessible_attributes 
这将返回该类可访问的所有属性
 对于模型,您可以使用MyModel.attribute_names或MyModel.column_names 。 
 例如,你可以使用MyModel.new.attribute_names 。 
 Post.accessible_attributes.to_a.map(&:to_sym)