Предположим, что у меня есть модель 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;
Я понимаю основной принцип неограниченного по объему удаления всех существующих объемов, но разве это не должно знать и сохранять объем ассоциации?
Что лучший способ состоит в том, чтобы вытянуть ВСЕ комментарии?