如果我刚才这段代码模型文件:如何设置'attr_accessible'以便不允许访问任何使用Ruby on Rails的模型的字段?
class Users < ActiveRecord::Base
end
这是什么意思?所有与模型相关的属性都可以访问或不可以访问?
我怎么可以为了设置“attr_accessible”到不允许访问领域为该模型的任何?
如果我刚才这段代码模型文件:如何设置'attr_accessible'以便不允许访问任何使用Ruby on Rails的模型的字段?
class Users < ActiveRecord::Base
end
这是什么意思?所有与模型相关的属性都可以访问或不可以访问?
我怎么可以为了设置“attr_accessible”到不允许访问领域为该模型的任何?
只需设置:
class Users < ActiveRecord::Base
attr_accessible #none
end
像潘Thomakos说(attr_accessible是参数,可以是质量-RET阵列所以,如果你在没有符号发送,则没有参数可以被访问
。默认情况下属性都是attr_accessible(这意味着它们可以设置为我的质量分配)。
要完全禁止大规模分配,使用这样的:
ActiveRecord::Base.send(:attr_accessible, nil)
此命令将禁止大规模分配的所有活动记录的对象,但你可以指定一个或多个模型来执行此命令如果你想在某些情况下批量分配,但在其他情况下则不需要。
访问,但我怎么能“‘attr_protected’ “特定模型的所有属性? – user502052 2011-01-29 18:05:43
我已经更新了我的信息以及该信息。 – 2011-01-29 18:10:06
使用Rails 3.1开始,下面的配置选项可默认为所有车型禁用大规模分配,直到显式调用attr_accessible或attr_protected:
config.active_record.whitelist_attributes = true
见http://edgeguides.rubyonrails.org/security.html#mass-assignment和https://github.com/rails/rails/commit/f3b9d3aba8cc0ffaca2da1c73c4ba96de2066760
你还问“模型相关的所有属性都可以访问或不?” - 默认情况下,所有的字段都为大众分配 – 2011-01-30 15:19:04