删除 belongs_to 和 has_many 关联中的评论
Deleting a comment in belongs_to and has_many association
我正在关注 rails 简单博客应用程序的说明。
在最后一部分删除他们使用的评论时
def destroy
@article = Article.find(params[:article_id])
@comment = @article.comments.find(params[:id])
@comment.destroy
redirect_to article_path(@article)
end
我的问题是他们为什么要删除这样的评论
@comment = @article.comments.find(params[:id])
当
@comment = Comment.find(params[:id])
两个returns 相同的@comment 对象。因为 id 在整个评论中都是唯一的。为什么他们要采取额外的步骤来查找文章。
可能是因为在删除之前我们需要先检查评论是否属于那篇文章?或者是 rails 设置此类关联时删除的方法
正如所写,这没有任何价值。在删除评论之前检查评论是否属于文章是没有意义的,除非文章用于判断请求用户是否有权执行该操作。
就目前而言,检查评论是否属于给定文章会向系统添加 no 值,因为两个输入均由用户提供,并且没有一个经过验证属于请求用户。 没有评论属于文章的"insuring"内在价值,它是多余的,增加了不必要的开销和混乱。您应该使用 shallow nesting 从文章中取消评论的 show/edit/update/delete 路径。
我正在关注 rails 简单博客应用程序的说明。 在最后一部分删除他们使用的评论时
def destroy
@article = Article.find(params[:article_id])
@comment = @article.comments.find(params[:id])
@comment.destroy
redirect_to article_path(@article)
end
我的问题是他们为什么要删除这样的评论
@comment = @article.comments.find(params[:id])
当
@comment = Comment.find(params[:id])
两个returns 相同的@comment 对象。因为 id 在整个评论中都是唯一的。为什么他们要采取额外的步骤来查找文章。 可能是因为在删除之前我们需要先检查评论是否属于那篇文章?或者是 rails 设置此类关联时删除的方法
正如所写,这没有任何价值。在删除评论之前检查评论是否属于文章是没有意义的,除非文章用于判断请求用户是否有权执行该操作。
就目前而言,检查评论是否属于给定文章会向系统添加 no 值,因为两个输入均由用户提供,并且没有一个经过验证属于请求用户。 没有评论属于文章的"insuring"内在价值,它是多余的,增加了不必要的开销和混乱。您应该使用 shallow nesting 从文章中取消评论的 show/edit/update/delete 路径。