我正在尝试使用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
如果您想了解更多信息,请随时提出要求!
提前感谢。
答案 0 :(得分:2)
确保你有一个模板来配合你的控制器动作,在这种情况下你需要一些东西:
app/views/comments/show.html.erb