Как получить коллекцию из коллекции в Rails?
У меня есть коллекция пользователей с сообщениями, и я хотел бы получить все сообщения от всех пользователей. Есть ли способ сделать что-то вроде этого:
User.active.posts.unique.visible
Активные и видимые - это специальные области, которые я написал сам.
1 ответ
Решение
Если у вас есть user_id
колонка в вашем posts
Таблица:
Post.where(user_id: User.active.map(&:id)).visible
Он сгенерирует два SQL-запроса без какого-либо соединения (если вы не используете соединение в своем visible
сфера), так что это довольно эффективный способ.