You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minitest无法识别api_v1_airlines路由,报错未定义变量/方法

问题解决方法

你的错误根源是调用了错误的路由助手方法名,Rails生成的路由助手默认会以_path(相对路径)或_url(绝对路径)作为后缀,而不是直接用路由名称api_v1_airlines。

修正步骤

  1. 修改测试代码中的路由调用:
    将原来的get api_v1_airlines替换为get api_v1_airlines_path或者get api_v1_airlines_url,修正后的代码如下:

    # airlines_controller_test.rb
    class AirlinesControllerTest < ActionDispatch::IntegrationTest
        test "should get index" do
          get api_v1_airlines_path
          assert_response :success
        end
      end
    
  2. 额外注意路由参数约束:
    从你的路由输出{:params=>:slug}来看,这个路由定义了slug参数约束,如果你的index动作确实需要接收slug参数,那么调用助手时需要传入对应参数,比如:

    get api_v1_airlines_path(slug: "example-slug")
    

    如果这个约束是误加的,可以检查config/routes.rb中的路由定义,去掉不必要的params: :slug配置。

关于测试配置

你的测试类继承ActionDispatch::IntegrationTest是正确的,这个类已经自动包含了路由助手模块,不需要额外添加配置。

内容的提问来源于stack exchange,提问作者Benjamin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:50:05