我对我的评论的摧毁行动无效。这是我的链接:
<%= 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
弹出框确实出现并允许我点击确定。它闪现说是成功的,但评论不会被删除。任何帮助表示赞赏!
答案 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,而不是单个评论。
其次,您需要粘贴请求/响应的日志输出才能更有帮助。我的猜测是你犯了一个错误。