Rails 5仅API应用控制器测试报错:Invalid option key问题求助
解决Rails 5 API应用控制器测试中
raise_on_unfiltered_parameters错误 你遇到的问题核心是错误地在控制器层面设置了属于Rails全局应用的配置参数。raise_on_unfiltered_parameters是Rails的应用级配置项,不能直接在ApplicationController里定义,这就是加载控制器时直接抛出无效选项错误的原因。
下面是具体的排查和解决步骤:
第一步:检查
app/controllers/application_controller.rb的第一行代码,你大概率在这里写了类似config.raise_on_unfiltered_parameters = true的配置。这是错误的,因为控制器实例并不具备config属性来设置全局应用配置。第二步:将这个配置迁移到正确的位置:
- 如果要让配置全局生效,把代码放到
config/application.rb的Application类中:module YourAppName class Application < Rails::Application # 其他已有的配置... config.raise_on_unfiltered_parameters = true end end - 如果只想在测试环境启用该配置,就放到
config/environments/test.rb里:Rails.application.configure do # 其他测试环境配置... config.raise_on_unfiltered_parameters = true end
- 如果要让配置全局生效,把代码放到
第三步:删除
ApplicationController里那行错误的配置代码,重新运行控制器测试,这个错误应该就会消失了。
补充说明:这个配置项的作用是当有未过滤的参数传入时抛出异常,在Rails 5.x中它属于应用级别的配置,而非控制器级别的,因此必须放在正确的配置文件中。
内容的提问来源于stack exchange,提问作者user2593486
相关产品推荐
相关产品推荐

