'attr_accessible'效果



我正在使用Ruby on Rails 3.0.9,我想知道在哪些情况下(即,对于哪些方法)attr_accessible方法有效果。例如,如果我使用

attr_accessible :name, :surname

当你为User.new(params[:user])语句使用new(...)方法时,它会注意不分配这些属性值。

但是还有什么其他的方法呢?我可以正常运行,例如,where(...)exists?(...)的方法没有attr_accessible将生效?

如果您使用attr_accessible,该模型将阻止未包含在attr_accessible列表中的那些列的大量分配。受影响的方法是mass assignment,如newcreateupdate_attributesattributes=等。所有其他函数都可以工作,甚至像这样的单个赋值:

@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?等不应有任何影响

相关内容

  • 没有找到相关文章

最新更新