Ruby on Rails 6.1.4.1版本GET请求无法生效问题求助
根本原因
该Missing template报错的核心是Rails未在预期路径下找到匹配当前请求格式的视图文件,结合你提供的操作步骤,高频错误点按出现概率排序如下:
- 控制器存放目录拼写错误:Rails标准控制器存放路径为
app/controllers(复数形式),若你实际创建在app/controller(单数)目录下,Rails无法加载对应控制器,自然无法匹配视图。 - 视图路径/文件名拼写错误:
views目录下的文件夹必须为全小写的about,不能是About、abouts等其他拼写- 视图文件名必须严格为
index.html.erb,不能存在多余空格、后缀顺序错误(如index.erb.html)、后缀类型错误(如index.html.haml)
- 路由缓存问题:修改
routes.rb后未重启Rails服务,本地缓存导致新增路由未生效。
解决步骤
- 核对控制器路径:确认
about_controller.rb文件存放在app/controllers目录下,文件名无拼写错误。 - 核对视图文件:确认存在
app/views/about/index.html.erb文件,可往文件内添加一行测试内容如<h1>About页面</h1>,避免空文件识别异常。 - 重启Rails服务:关闭当前运行的
rails s进程,重新启动服务后访问/about路径测试。 - 若以上步骤均无效,可在控制器
index方法中强制指定渲染模板验证:
class AboutController < ApplicationController def index render template: "about/index" end end
内容的提问来源于stack exchange,提问作者Abcdef
相关产品推荐
相关产品推荐

