Rails和attr_accessible:如果质量分配非质量可分配属性,有没有办法引发异常?

时间:2010-08-13 10:22:47

标签: ruby-on-rails ruby exception attr-accessible

如果尝试批量分配attr_accessible不允许的属性,是否有办法让rails引发错误?

这在开发中会很方便,以提醒我为什么我的闪亮新模型不起作用,并且还可以登录生产以检测恶意活动。

我正在使用rails 2.3.8,但可能很快就会迁移到3。

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

亚历