在一个新的rails项目中,为什么在生产中质量分配没有设置为严格,以及在开发和测试中将其设置为严格的原因是什么?
答案 0 :(得分:4)
你的意思是这一行,我假设:
# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict
不设置质量分配保护本身 - 无论环境如何,都默认为受保护。正如评论暗示的那样,它的作用是告诉Rails在质量分配错误上引发异常,这有助于开发和测试。在生产中,这些都被忽略了。
来自attr_protected
的文档:
将忽略对这些属性的批量分配,要分配给它们,您可以使用直接编写器方法。这是为了保护敏感属性不被恶意用户篡改URL或表单所覆盖。