我创建了一个_posts_controller.rb _:
class PostsController < ApplicationController
def index
end
end
然后我在“ app / views / posts”文件夹下创建了一个 index.html.erb 文件:
<h1> Blog Post </h1>
然后我将其添加到 routes.rb :
Rails.application.routes.draw do
get 'home/index'
resources :posts
root 'home#index'
end
尝试访问帖子索引页面时,我重新启动了服务器并收到此错误:
PostsController#index is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: [] NOTE! For XHR/Ajax or API requests, this action would normally respond with 204 No Content: an empty white screen. Since you're loading it in a web browser, we assume that you expected to actually render a template, not nothing, so we're showing an error to be extra-clear. If you expect 204 No Content, carry on. That's what you'll get from an XHR or API request. Give it a shot.
答案 0 :(得分:0)
现在,从您的描述来看,您的_
路由似乎指向了不存在的控制器。
您需要使用root
方法的HomeController
,以及放置index
视图的目录app/views/home
,或更改index.html.erb
路径以指向root
。
答案 1 :(得分:0)
PostsController#index
文件夹中似乎缺少index
posts
文件,因此请在index.html.erb
文件夹中创建一个views/posts/
如果尝试了多种方法后问题仍未解决,那么您就不要浪费时间了,您可以重新开始,因为我猜您处于起步阶段,所以不要犹豫,从{{3}开始},再次查看文档并查看发生了什么情况。
希望这会有所帮助。
答案 2 :(得分:0)
谢谢您的评论。我得到了我问题的答案。
我实际上在此文件夹“ app / views / posts”下创建了文本文件,并将文本文件的扩展名设置为index.html.erb
我删除了上面的文本文件。然后我在notepad ++中创建了另一个文件,并将文件名放在index.html.erb中 我以前的所有代码都保持不变,并且工作正常。我很高兴发现问题,因此可以继续学习Ruby:)