Как получить коллекцию из коллекции в Rails?

У меня есть коллекция пользователей с сообщениями, и я хотел бы получить все сообщения от всех пользователей. Есть ли способ сделать что-то вроде этого:

User.active.posts.unique.visible

Активные и видимые - это специальные области, которые я написал сам.

1 ответ

Решение

Если у вас есть user_id колонка в вашем posts Таблица:

Post.where(user_id: User.active.map(&:id)).visible

Он сгенерирует два SQL-запроса без какого-либо соединения (если вы не используете соединение в своем visible сфера), так что это довольно эффективный способ.

Другие вопросы по тегам