Rails 3.2严格的质量分配默认值

时间:2012-11-06 19:01:41

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 mass-assignment

在一个新的rails项目中,为什么在生产中质量分配没有设置为严格,以及在开发和测试中将其设置为严格的原因是什么?

1 个答案:

答案 0 :(得分:4)

你的意思是这一行,我假设:

# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict

设置质量分配保护本身 - 无论环境如何,都默认为受保护。正如评论暗示的那样,它的作用是告诉Rails在质量分配错误上引发异常,这有助于开发和测试。在生产中,这些都被忽略了。

来自attr_protected的文档:

  

将忽略对这些属性的批量分配,要分配给它们,您可以使用直接编写器方法。这是为了保护敏感属性不被恶意用户篡改URL或表单所覆盖。