用于 attr_accessible/protected 的 Rails 3 配置设置

Posted

技术标签:

【中文标题】用于 attr_accessible/protected 的 Rails 3 配置设置【英文标题】:Rails 3 config setting for attr_accessible/protected 【发布时间】:2012-03-29 13:02:56 【问题描述】:

我刚刚花了很长时间尝试解决模型中的虚拟属性问题。原来我只是忘记在我的模型中将它添加到 attr_accesible 中。当然,我应该更早地抓住它,或者更好地开始整个努力,首先将它添加到 attr_accessible 中。

为了防止这种情况再次发生,如果我尝试批量分配某些内容并在它受到保护/无法访问时对其进行验证,是否有一个配置设置可以标记为在开发中引发异常?我知道我可以使用 set config.active_record.whitelist_attributes = true 来要求所有人加入白名单,但我的问题更多的是基于单个属性。

例如,如果我有一个带有 attr_accessible :name 的模型然后添加 :nickname(虚拟或非虚拟),则上面的行不会警告我,并尝试批量分配它以检查存在 => true。我希望它警告我,我试图通过批量分配来验证受保护的属性。

【问题讨论】:

【参考方案1】:

Rails 3.2 有一个配置选项可以在这种情况下引发ActiveModel::MassAssignmentSecurity::Error

config.active_record.mass_assignment_sanitizer = :strict

参见Rails 3.2 release notes 和commit in Rails

【讨论】:

对于 Rails gist.github.com/2027920 rails 3.1 确实是我所在的位置。谢谢。

以上是关于用于 attr_accessible/protected 的 Rails 3 配置设置的主要内容,如果未能解决你的问题,请参考以下文章

RSA非对称加密,私钥用于签名公钥用于验签;公钥用于加密私钥用于解密

Cas(用于身份验证)+ OpenLDAP(用于用户名、密码+角色和权限)+ Apache Shiro(用于授权)

用于加密的公钥;用于解密的私钥?

我已经使用了 3 个按钮,一个用于一周,一个用于一个月,一个用于一天,如果单击一周按钮,应该禁用日和月

JAVA也可以用于图像的设计吗?

日志文件仅用于日志还是用于存储消息?