Rails 3配置attr_accessible/protected的设置

Yur*_*uri 3 ruby-on-rails mass-assignment virtual-attribute

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

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

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

ilt*_*mpo 6

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

config.active_record.mass_assignment_sanitizer = :strict

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

  • 对于Rails <3.2,你可以使用这个要点:https://gist.github.com/2027920 (2认同)