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