【发布时间】:2019-11-30 07:56:19
【问题描述】:
我正在尝试从 codecademy 显示一个非常简单的应用程序,这是我在浏览器中遇到的错误:
PagesController#welcome 缺少请求格式的模板:text/html
注意! 除非另有说明,Rails 期望一个动作来渲染一个同名的模板, 包含在以其控制器命名的文件夹中。如果此控制器是响应 204(无内容)的 API, 不需要模板,则尝试通过浏览器访问时会出现此错误, 因为我们希望为此类请求呈现 HTML 模板。如果是这样,请继续。
pages_controller.rb
class PagesController < ApplicationController
def welcome
end
end
routes.rb
Rails.application.routes.draw do
root ‘pages#welcome’
end
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Portfolio</title>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,500,700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
</body>
</html>
welcome.html.erb
<h1>Hello</h1>
运行“rails server”并在我的浏览器中出现上述错误。据我所知,这些文件位于正确的位置和正确的类型... Rails v 6.0.1
【问题讨论】:
-
您的控制器似乎包含黑白引号,删除引号然后刷新页面
-
welcome.html.erb是否位于您的views目录内的pages目录中? -
抱歉,它们不在我程序中的引号之间。是的,welcome.html.erb 在 app/views/pages 中。
-
你能在你的终端中运行:rake routes 并显示给我们响应吗?
-
此问题属于“无法复制”类别。如果从表面上看,这个问题中的代码无法解释错误,我猜它可以归因于简单的人为错误,例如文件名或路径中的拼写错误。但这确实是微不足道的东西,只需运行
rails g controller pages welcome即可生成,而不是花费大量时间进行故障排除。
标签: ruby-on-rails ruby-on-rails-6