3

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

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

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

4

1 回答 1

6

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

config.active_record.mass_assignment_sanitizer = :strict

请参阅Rails 3.2 发行说明Rails 中的提交

于 2012-03-13T06:57:29.393 回答