Есть ли способ получить все объекты, включенные в запрос Active Relation? Что-то вроде этого:Включить все объекты Active Record объекты коллекции
def index
@items = Item.all.includes(:comments)
@comments = @items.comments // No such method for AR Collection :(
end
Очевидный способ получить все элементы в этом случае:
@comments = @items.map(&:comments).flatten.uniq
Благодаря использованию .includes(:comments)
не должно быть никаких N + 1 запросов, но я беспокоюсь о производительность этого кода. Есть ли встроенные или более эффективные способы получения всех включенных записей о сборе?
Почему вы хотите, чтобы все комментарии в отдельный объект '@ comments'? Как вы собираетесь использовать его в точности? – Surya
Это действительно зависит от того, что вы намереваетесь делать с '@ comments' - вам нужны они в любом конкретном порядке? – max