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
。接下来需要使用文章的comments
collection,销毁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
关联销毁评论,但这始终是一个好习惯。
我对评论的销毁操作无效。这是我的 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
。接下来需要使用文章的comments
collection,销毁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
关联销毁评论,但这始终是一个好习惯。