Rails 3配置attr_accessible / protected的设置

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

为了防止这种情况再次发生,是否有一个配置设置我可以标记为在开发时抛出exception,如果我尝试批量分配并在受保护/不可访问时validation它? 我知道我可以使用set config.active_record.whitelist_attributes = true来要求所有人使用白名单,但我的问题更多的是基于个别属性。

例如,如果我有一个带有attr_accessible的模型,则上面的行不会发出警告:name然后添加:nickname(virtual或not),并尝试批量分配它,检查presence => true。 我希望它警告我,我试图通过质量分配来validation受保护的属性。

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

config.active_record.mass_assignment_sanitizer = :strict

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