Rails - Как использовать активную запись для запроса с вложенным условием? - PullRequest
0 голосов
/ 21 июля 2011

Допустим, у меня есть три модели

User(id, guest(boolean))
 belongs_to :room_user
Room (id)
RoomUser (id, room_id, user_id)
 has_many :users

Прямо сейчас я могу сделать, room.room_users и вернуть всех связанных пользователей, которые находятся в этой комнате.Это очень выполнимо с рельсами.

То, что я хочу сейчас сделать, это что-то вроде Room.room_users_active

Итак, в модели комнаты у меня есть:

def room_users_active
   self.room_users.where(:......)
end

Задача здесьЯ хочу, чтобы условие доходило до пользовательской таблицы.И сделайте следующее:

Верните все room_users, где пользователь не является гостем (User.guest == false).

Идеи?Спасибо

1 Ответ

2 голосов
/ 21 июля 2011

Не проверено, но должно работать, попробуйте и дайте мне знать

def room_users_active
   room_users.joins(:users).where('user.guest = false')
end

Исправлен неправильный вызов метода, см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...