“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
型
会是什么问题呢?
4条答案
按热度按时间zd287kbt1#
在
config/routes.rb
中添加路由后是否重新启动服务器?在config
目录中进行任何更改后,需要重新启动服务器。7gyucuyw2#
你有没有试过明确地调用它?如果这不起作用,请确保重新启动一切,然后再试一次
字符串
hyrbngr73#
是否使用Powershell或命令提示符运行Rails服务器?我在使用Powershell for Rails服务器时遇到了这个确切的问题,但如果我使用命令提示符运行Rails服务器,完全相同的代码工作正常。
vjrehmav4#
这个答案可能是特定于环境(Windows)的,但我在Ruby on Rails上遇到了这个问题“Hello,Rails!”指南(模板文件存在于正确的路径中,但错误消息指出它不存在)。在我的例子中,在
cmd
而不是PowerShell
中启动服务器,导致了一个权限错误,在启动服务器之前以管理员身份运行cmd
修复了这个错误。奇怪的是,尝试从VS Code运行
cmd
来启动服务器时,我得到了与PowerShell
相同的错误,这是一个奇怪的行为。运行一个单独的cmd
示例就可以了。