Rails 4销毁注释不起作用的操作

时间:2015-01-20 16:16:56

标签: ruby-on-rails crud

我对我的评论的摧毁行动无效。这是我的链接:

<%= 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

弹出框确实出现并允许我点击确定。它闪现说是成功的,但评论不会被删除。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

您没有向我们展示@article是如何填充的,所以让我们假装它不可用并重新开始。首先,您需要找到父Article。该文章的ID应在参数中以article_id的形式提供。接下来,您需要使用文章的comments集合并销毁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协会销毁评论,但这始终是一个好习惯。

答案 1 :(得分:0)

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

其次,您需要粘贴请求/响应的日志输出才能更有帮助。我的猜测是你犯了一个错误。