'attr_accessible'效果

时间:2011-08-18 09:10:13

标签: ruby-on-rails ruby ruby-on-rails-3 methods attr-accessible

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

attr_accessible :name, :surname

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

还需要注意哪些其他方法? 我可以正确运行,例如where(...)exists?(...)方法,而不是{{1}会生效吗?

2 个答案:

答案 0 :(得分:3)

如果您使用attr_accessible,模型将阻止对attr_accessible列表中未包含的列进行大量分配。受影响的方法包括mass assignmentnewcreateupdate_attributesattributes=等。所有其他功能都可以使用,即使是这样的单一分配:< / p>

@model_object.column_not_listed_in_attr_accessible_list = "Saved"
@model_object.column_not_listed_in_attr_accessible_list
=> "Saved"

因此,在whereexists?等中使用它们应该没有任何问题。

答案 1 :(得分:2)

attr_accessible将仅影响与写操作相关的函数。

Ex:new,create,update_attributes等。

其他只读函数,例如where,e​​xists?等应该没有任何影响。