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

Rails新手求助:访问/games时出现GET请求路由匹配错误

解决Rails中GET /games的路由错误问题

嘿,我来帮你搞定这个头疼的路由问题!

你遇到的No route matches [GET] "/games"错误,核心原因很明确:你的Rails应用里根本没有定义GET /games这个路由。

从你给出的路由列表能看到,目前games相关的路由只有两个:

  • POST /games(.:format) 对应games#create(创建游戏)
  • GET /games/:id(.:format) 对应games#show(查看单个游戏详情)

完全没有GET /games对应的index路由——这就是你访问这个地址报错的根源。

怎么解决?

方案1:生成完整的RESTful路由

在你的routes.rb文件里,添加完整的resources :games声明:

Rails.application.routes.draw do
  resources :newsposts
  resources :players
  resources :games # 加上这一行
  # 其他路由...
end

resources :games会自动生成7个标准RESTful路由,其中就包含GET /games(对应games#index动作)。

方案2:只生成需要的特定路由

如果你不想生成全部7个路由,只想保留index、show、create这几个,可以用only选项精准控制:

resources :games, only: [:index, :show, :create]

验证修改是否生效

修改完路由后,在终端运行命令:

rails routes

如果看到类似下面的条目,就说明GET /games路由已经成功添加了:

games GET    /games(.:format)          games#index

最后别忘了控制器动作

路由搞定后,还要确保你的GamesController里有index方法,不然访问时会报“动作不存在”的错误:

class GamesController < ApplicationController
  def index
    # 这里写你的业务逻辑,比如获取所有游戏
    @games = Game.all
  end

  # 其他已有的show、create动作...
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:07:11