Rails报错:StoresController缺少text/html模板,求解决方法
修复Rails "StoresController#pages is missing a template for request formats: text/html" 报错
核心原因
这个报错本质是:Rails应用收到了指向StoresController#pages动作的请求,但找不到对应text/html格式的视图模板,或是路由、控制器配置存在异常。
具体修复步骤
检查控制器与视图匹配
- 打开
stores_controller.rb,确认是否存在pages动作:- 如果有该动作但不需要独立视图,可在动作里显式指定渲染已有的index模板:
def pages render :index end - 如果完全不需要
pages动作,直接删除控制器里的该方法。
- 如果有该动作但不需要独立视图,可在动作里显式指定渲染已有的index模板:
- 若需要独立的pages页面,在
app/views/stores/目录下创建pages.html.erb文件并添加对应内容。
- 打开
核对路由配置
- 打开
config/routes.rb,找到指向StoresController#pages的路由规则:- 如果是误配置的路由,直接删除该规则;
- 如果想让该路由指向其他动作(比如index),修改为:
get 'stores/pages', to: 'stores#index'
- 运行终端命令
rails routes,确认路由生成结果,检查StoresController#pages对应的路由是否符合预期,排除拼写错误。
- 打开
清理应用缓存
运行终端命令rails tmp:clear,清除应用临时文件和缓存,避免缓存导致的路由/模板识别异常。
内容的提问来源于stack exchange,提问作者uma
相关产品推荐
相关产品推荐

