2016-07-22 15 views
0

私は次のようになっています。最後の部分で 彼らはbelongs_toとhas_manyの関連付けのコメントを削除する

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

の両方が同じを返すときに

@comment = @article.comments.find(params[:id]) 

のようなコメントを削除したいんなぜ私の質問がある

def destroy 
    @article = Article.find(params[:article_id]) 
    @comment = @article.comments.find(params[:id]) 
    @comment.destroy 
    redirect_to article_path(@article) 
end 

を使用していたコメントを削除中@commentオブジェクト。 idはコメントを通して一意になるからです。彼らはなぜ記事を見つけるために余分なステップを踏みたいのですか? 削除する前にコメントがその記事に属しているかどうかを確認する必要があるからですか?そのような種類の関連付けが設定されたときに削除する方法です。

+0

いいえ、それは悪いチュートリアルです。 – meagar

+0

予防的な手順です –

+0

別の記事に属するコメントを削除したくない場合 –

答えて

0

これは価値がありません。記事を削除する前に記事に属していることを確認することは、記事を使用して、要求しているユーザーがその行動を実行する権限を持っているかどうかを判断しない限り、無意味です。

これは、コメントが特定の記事に属しているかどうかをチェックすることで、システムに入力された入力がユーザーのものであることが確認されたため、という値をシステムに追加します。コメントが記事に属していることを「保証する」にはという固有の値があります。冗長であり、不要なオーバーヘッドとクラッタを追加します。コメントの表示/編集/更新/削除のパスを記事から消し込むには、shallow nestingを使用してください。

関連する問題