Post モデルと Comment モデルがあるとします。一般的なパターンを使用して、has_many コメントを投稿します。
コメントに default_scope が設定されている場合:
default_scope where("deleted_at IS NULL")
スコープに関係なく、投稿のすべてのコメントを簡単に取得するにはどうすればよいですか? これにより、無効な結果が生成されます。
Post.first.comments.unscoped
次のクエリが生成されます。
SELECT * FROM posts LIMIT 1;
SELECT * FROM comments;
それ以外の:
SELECT * FROM posts LIMIT 1;
SELECT * FROM comments WHERE post_id = 1;
ランニング:
Post.first.comments
プロデュース:
SELECT * FROM posts LIMIT 1;
SELECT * FROM comments WHERE deleted_at IS NULL AND post_id = 1;
既存のすべてのスコープを削除するスコープなしの基本原則は理解していますが、関連スコープを認識して保持する必要はありませんか?
すべてのコメントを取得する最良の方法は何ですか?