如何删除嵌套对象?

时间:2015-08-12 18:39:23

标签: ruby-on-rails destroy

我创建了一个博客,其中包含文章内的文章和评论。我想创建一个选项,所以我也可以删除评论但是当我点击删除按钮时,错误显示“找不到评论'id'= #id here”

<div>
<h4>Comment by <%= comment.author_name %></h4>
<p><%= comment.body %></p>
</div>
<p> <%= link_to "Delete Comment", article_comment_path(@comment.article_id, @comment.article.id), method: :delete %> </p>

查看

def destroy
    @comment = Comment.find(params[:id])
    @comment.destroy

    redirect_to article_path(@comment.article)
end

评论控制器

{{1}}

1 个答案:

答案 0 :(得分:1)

您使用... @comment.article_id, @comment.article.id ...引用同一篇文章对象。试试这个:

<%= link_to "Delete Comment", article_comment_path(@comment.article, @comment), method: :delete %>

修改

我现在看到你还试图在@comment对象被销毁后引用它。

def destroy
    @article = Article.find(params[:article_id])
    @comment = Comment.find(params[:id])
    @comment.destroy

    redirect_to article_path(@article)
end