我正在使用 Ruby on Rails 3.0.9,我想知道该方法在哪些情况下(即对于哪些方法)attr_accessible
有效。例如,如果我使用
attr_accessible :name, :surname
当您使用语句的new(...)
方法时,它会注意不分配这些属性值。User.new(params[:user])
但是它会采取什么其他方法呢? 我可以正确运行,例如,方法where(...)
是否exists?(...)
会attr_accessible
生效?
我正在使用 Ruby on Rails 3.0.9,我想知道该方法在哪些情况下(即对于哪些方法)attr_accessible
有效。例如,如果我使用
attr_accessible :name, :surname
当您使用语句的new(...)
方法时,它会注意不分配这些属性值。User.new(params[:user])
但是它会采取什么其他方法呢? 我可以正确运行,例如,方法where(...)
是否exists?(...)
会attr_accessible
生效?
如果您使用,该模型将阻止对未包含在列表attr_accessible
中的那些列进行批量分配。attr_accessible
受影响的方法是mass assignment
like 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?
。
attr_accessible
只会影响与写操作相关的功能。
例如:new、create、update_attributes 等。
其他只读函数,例如 where、exists?等应该不会有任何影响。