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

ActionController::UrlGenerationError:测试路由匹配失败求助

解决ActionController::UrlGenerationError: No route matches的问题

嘿,这个问题我太熟了!你遇到的路由匹配错误,核心原因是action名称的大小写不匹配——Rails的路由系统对action名称的大小写是敏感的,你测试代码里用了大写的:Show,但实际定义的路由对应的action是小写的:show,这就导致系统找不到对应的映射关系。

看你提供的测试代码片段:

test "should get show action when logged in" do
log_in_as(@other_user)
get :Show, params: {id: @team}
assert_response :success
assert_template 'te...

这里的get :Show就是问题所在,只需要把它改成小写的:show就能解决这个错误。另外还有个小建议:params里的id最好直接传@team.id,避免对象隐式转换可能带来的意外问题,修复后的代码应该是这样:

test "should get show action when logged in" do 
  log_in_as(@other_user)
  get :show, params: {id: @team.id}
  assert_response :success 
  assert_template 'teams/show' # 这里可以补全模板名称,让测试更清晰
end

如果修改后还是有问题,你可以在终端运行这个命令确认路由是否正确定义:

rails routes

在输出里找有没有GET /teams/:id对应的teams#show条目,确认路由确实存在且配置正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:54:45