PostsController#index中的ActionController :: UnknownFormat

时间:2018-07-02 06:28:22

标签: ruby-on-rails

我创建了一个_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.

3 个答案:

答案 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:)