【发布时间】:2011-03-29 09:44:10
【问题描述】:
如果尝试批量分配 attr_accessible 不允许的属性,是否有办法让 rails 引发错误?
这将在开发中方便地提醒我为什么我闪亮的新模型无法正常工作,并且还可以登录生产以检测恶意活动。
我正在使用 rails 2.3.8,但可能很快就会迁移到 3。
【问题讨论】:
标签: ruby-on-rails ruby exception attr-accessible
如果尝试批量分配 attr_accessible 不允许的属性,是否有办法让 rails 引发错误?
这将在开发中方便地提醒我为什么我闪亮的新模型无法正常工作,并且还可以登录生产以检测恶意活动。
我正在使用 rails 2.3.8,但可能很快就会迁移到 3。
【问题讨论】:
标签: ruby-on-rails ruby exception attr-accessible
从 Rails 3.2 开始,这不再需要猴子补丁——rails 现在提供了这种行为。把它放在 development.rb 和 test.rb 中:
config.active_record.mass_assignment_sanitizer = :strict
【讨论】:
我建议something like the Bento project has incorporated into their Rails app。
他们在 config/initializers/ 下创建 Rails Initializer,然后覆盖 ActiveModel 类中的适当方法以引发 MassAssignmentError(在非生产环境中)。
【讨论】:
config.active_record.mass_assignment_sanitizer = :strict
我不确定这是否可行,但您可以编写一个测试来查看您的对象是否“respond_to(:unexpected_attr)”。然后你可以尝试强制喂它 attr
亚历克斯
【讨论】: