Rails 4 销毁评论无效的操作

Rails 4 Destroy Action For Comments Not Working

我对评论的销毁操作无效。这是我的 link:

<%= link_to 'Delete Comment', article_comment_path(@article, comment), 
                              method: :delete, data: { confirm: 'Are you sure?'} %>

这是我的销毁动作:

def destroy
    @article.comments.destroy
    respond_to do |format|
      format.html { redirect_to article_path(@article), notice: 'Comment was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

确实出现了弹出框,让我点击“确定”。闪说成功了,但是评论并没有被删除。感谢您的帮助!

首先,您是在整个 @article.comments 集合上调用 destroy,而不是在单个评论上调用。

其次,您需要粘贴日志输出以使 request/response 更有帮助。我猜你是在抛出一个错误。

您没有向我们展示 @article 是如何被填充的,所以让我们假装它不可用并重新开始。首先,您需要找到 parent Article。文章的 ID 应该在参数中可用 article_id。接下来需要使用文章的commentscollection,销毁ID=params[:id].

的评论
def destroy
  article = Article.find(params[:article_id])
  article.comments.find(params[:id]).destroy

  respond_to do |format|
    format.html { redirect_to article_path(article), notice: 'Comment was successfully destroyed.' }
    format.json { head :no_content }
  end
end

从技术上讲,您不需要通过 comments 关联销毁评论,但这始终是一个好习惯。