如何使所有模型属性可用于批量分配?

ser*_*i12 15 activerecord ruby-on-rails

我使用此应用程序配置选项无法访问rails应用程序中的所有属性:

config.active_record.whitelist_attributes = true
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,我定义了一些我想要attr_accessible在模型中可访问的属性.如何使特定模型的所有属性都可访问.有点像attr_accessible :all.

KL-*_*L-7 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
Run Code Online (Sandbox Code Playgroud)


Dav*_*ino 13

我发现这种方法更具可读性:

class User < ActiveRecord::Base
  attr_accessible *column_names
end
Run Code Online (Sandbox Code Playgroud)

更改config.active_record.whitelist_attributes将影响所有模型,而这仅适用于一个模型.

attr_protected方式也有效,但我发现它令人困惑(因为它与乍一看似乎相反).