我如何设置‘attr_access’,以便不允许访问使用RubyonRails的模型的任何字段?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

如果在model文件中只有以下代码:

class Users < ActiveRecord::Base
end

这意味着什么?所有与model相关的属性是否都是可访问的?

提问于
用户回答回答于

设置:

class Users < ActiveRecord::Base
  attr_accessible #none
end

用户回答回答于

默认情况下,这些属性都是attr_accessible(这意味着它们可以被设置为我的质量分配)。

  • attr_accessible - 只有这个属性列表可以通过批量赋值(白名单)来设置。
  • attr_protected - 这些属性不能通过批量分配(黑名单)进行设置。
  • attr_readonly - 除创建记录时外,不能设置这些属性。

要完全禁用批量分配,请使用如下所示的内容:

ActiveRecord :: Base.send(:attr_accessible,nil)

此命令将禁用所有活动记录对象的批量分配,但是如果想在某些情况下进行批量分配,如果不想在其他情况下进行批量分配,则可以指定一个或多个模型来执行此命令。

扫码关注云+社区