我正在使用 Ruby on Rails 3.0.9,我想知道 attr_accessible
方法在哪些情况下(即对于哪些方法)有效。例如,如果我使用
attr_accessible :name, :surname
当您对 User.new(params[:user])
语句使用 new(...)
方法时,它会注意不要分配这些属性值.
但是它会处理哪些其他方法? 我能否正确运行,例如,where(...)
和 存在的方法?(...)
否则 attr_accessible
会生效吗?
最佳答案
如果您使用 attr_accessible
,该模型将阻止对那些未包含在 attr_accessible
列表中的列进行批量分配。受影响的方法是那些批量赋值
,如new
、create
、update_attributes
、attributes=
等。所有其他函数都可以工作,甚至像这样的单个赋值:
@model_object.column_not_listed_in_attr_accessible_list = "Saved"
@model_object.column_not_listed_in_attr_accessible_list
=> "Saved"
因此,在where
、exists?
等地方使用它们应该没有任何问题。
关于ruby-on-rails - 'attr_accessible' 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104952/