无法让Reddit风格起作用。通过控制器

时间:2018-04-20 23:52:41

标签: ruby-on-rails ruby

我正在尝试使用Reddit风格的评论部分,但是当我尝试评论另一条评论(因此是一个子评论)时,我遇到了一个问题。

我收到以下错误:

  

CommentsController中的ActionController :: UnknownFormat#show。
  CommentsController#show缺少此请求格式和变体的模板。 request.formats:[“text / html”] request.variant:[]注意!对于XHR / Ajax或API请求,此操作通常会响应204 No Content:空白屏幕。由于您是在Web浏览器中加载它,我们假设您希望实际呈现模板,而不是任何内容,因此我们显示错误是非常明确的。如果您希望204 No Content,请继续。这就是您从XHR或API请求中获得的内容。试一试。

这是我的代码:

comment_controller.rb

class CommentsController < ApplicationController
 before_action :find_commentable

  def new
    @comment = Comment.new
  end

  def create
    @comment = @commentable.comments.new comment_params

    if @comment.save
      redirect_to @commentable, notice: 'Your comment was successfully posted!'
    else
      redirect_to :back, notice: "Your comment wasn't posted!"
    end
  end

  def show
  end

  private

  def comment_params
    params.require(:comment).permit(:body)
  end

  def find_commentable
    @commentable = Comment.find_by_id(params[:comment_id]) if params[:comment_id]
    @commentable = News.find_by_id(params[:news_id]) if params[:news_id]
  end

 end

comment.rb

class Comment < ApplicationRecord
 belongs_to :commentable, polymorphic: true
 has_many :comments, as: :commentable
end

的routes.rb

Rails.application.routes.draw do
root 'news#index'

resources :news do
 resources :comments do
   resources :comments
 end
end

resources :comments do
 resources :comments
end

end

如果您想了解更多信息,请随时提出要求!

提前感谢。

1 个答案:

答案 0 :(得分:2)

确保你有一个模板来配合你的控制器动作,在这种情况下你需要一些东西:

app/views/comments/show.html.erb