我已经使用此应用程序配置选项无法访问rails应用程序中的所有属性:
config.active_record.whitelist_attributes = true
在大多数情况下,我在模型中使用attr_accessible
定义了一些我想要访问的属性。如何使特定模型的所有属性都可访问。类似于attr_accessible :all
。
答案 0 :(得分:29)
您可以通过调用attr_protected
来访问所有属性,而不需要这样的参数:
class User < ActiveRecord::Base
# roughly speaking sets list of model protected attributes to []
# making all attributes accessible while mass-assignment
attr_protected
end
答案 1 :(得分:13)
我发现这种方法更具可读性:
class User < ActiveRecord::Base
attr_accessible *column_names
end
更改config.active_record.whitelist_attributes会影响您的所有模型,而这只适用于一个模型。
attr_protected方式也有效,但我发现它令人困惑(因为它与乍一看似乎相反)。