“attr_accessible”效果
我正在使用 Ruby on Rails 3.0.9,我想知道 attr_accessible
方法在哪些情况下(即对于哪些方法)有效。例如,如果我使用
attr_accessible :name, :surname
它,当您对 User.new(params[:user])
使用 new(...)
方法时,会注意不要分配这些属性值代码>声明。
但是它还会处理哪些其他方法? 我可以正确运行吗,例如 where(...)
和 exists 等方法?(. ..)
没有的话 attr_accessible
会生效吗?
I am using Ruby on Rails 3.0.9 and I would like to know in which cases (that is, for which methods) the attr_accessible
method has effect. For example, if I use
attr_accessible :name, :surname
it will care to not assign those attribute values when you use the new(...)
method for the User.new(params[:user])
statement.
But what other methods it will take care? Can I run correctly, for example, methods as where(...)
and exists?(...)
without that the attr_accessible
will take effect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用
attr_accessible
,模型将阻止对attr_accessible
列表中未包含的那些列进行批量分配。受影响的方法是批量分配
的方法,例如new
、create
、update_attributes
、attributes=
因此,在
where
、exists?
等中使用它们应该不会有任何问题。If you use
attr_accessible
, the model will prevent mass assignment of those columns which are not included in theattr_accessible
list. The methods affected are those ofmass assignment
likenew
,create
,update_attributes
,attributes=
etc. All other functions will work, even single assignment like this:So, there should not be any problem for using them in
where
,exists?
etc.attr_accessible
将仅影响与写入操作相关的函数。例如:new、create、update_attributes 等。
其他只读函数(如 where、exists? 等)不应产生任何影响。
attr_accessible
will impact only functions that is related to write operations.Ex: new, create, update_attributes, etc.
Other read-only functions like where, exists?, etc should not have any impact.