ruby 缺少此请求的模板,但该模板存在?

a0zr77ik  于 2023-08-04  发布在  Ruby
关注(0)|答案(4)|浏览(146)

“PagesController#home缺少请求格式的模板:text/html”注意!除非另有说明,否则Rails期望一个操作来呈现一个同名的模板,该模板包含在以其控制器命名的文件夹中。如果这个控制器是一个响应204(无内容)的API,它不需要模板,那么当试图通过浏览器访问它时就会发生这个错误,因为我们希望为这样的请求呈现一个HTML模板。如果是这样的话,继续。
但是,我有home.html.erb文件:
x1c 0d1x的数据
pages_controller.rb

class PagesController < ApplicationController
  def home
  end

  def about
  end
end

字符串
routes.rb

Rails.application.routes.draw do
  get "home", to: "pages#home", as: "home"
  get "about", to: "pages#about", as: "about"

  root "pages#home"
end


会是什么问题呢?

zd287kbt

zd287kbt1#

config/routes.rb中添加路由后是否重新启动服务器?在config目录中进行任何更改后,需要重新启动服务器。

7gyucuyw

7gyucuyw2#

你有没有试过明确地调用它?如果这不起作用,请确保重新启动一切,然后再试一次

def home
  respond_to do |format|
    format.html { render :home }
end

字符串

hyrbngr7

hyrbngr73#

是否使用Powershell或命令提示符运行Rails服务器?我在使用Powershell for Rails服务器时遇到了这个确切的问题,但如果我使用命令提示符运行Rails服务器,完全相同的代码工作正常。

vjrehmav

vjrehmav4#

这个答案可能是特定于环境(Windows)的,但我在Ruby on Rails上遇到了这个问题“Hello,Rails!”指南(模板文件存在于正确的路径中,但错误消息指出它不存在)。在我的例子中,在cmd而不是PowerShell中启动服务器,导致了一个权限错误,在启动服务器之前以管理员身份运行cmd修复了这个错误。
奇怪的是,尝试从VS Code运行cmd来启动服务器时,我得到了与PowerShell相同的错误,这是一个奇怪的行为。运行一个单独的cmd示例就可以了。

相关问题