如果尝试批量分配attr_accessible不允许的属性,是否有办法让rails引发错误?
这在开发中会很方便,以提醒我为什么我的闪亮新模型不起作用,并且还可以登录生产以检测恶意活动。
我正在使用rails 2.3.8,但可能很快就会迁移到3。
答案 0 :(得分:6)
从Rails 3.2开始,这不再需要monkeypatching - rails现在提供了这种行为。把它放在 development.rb 和 test.rb 中:
config.active_record.mass_assignment_sanitizer = :strict
答案 1 :(得分:2)
我建议something like the Bento project has incorporated into their Rails app。
他们在config / initializers /下创建一个Rails Initializer,然后覆盖ActiveModel类中的相应方法以引发MassAssignmentError(在非生产环境中)。
答案 2 :(得分:0)
我不确定这是否可行,但您可以编写一个测试来查看您的对象是否“respond_to(:unexpected_attr)”。然后,您可以尝试强制输入attr
亚历