Как сделать запрос, чтобы получить всех пользователей на основе вложенного ресурса? - PullRequest
0 голосов
/ 02 сентября 2011

Учитывая:

Room (id, updated_at)
RoomMember (room_id, user_id)
User (id)

Как я могу получить в рельсах всех пользователей, которые принадлежат всем комнатам , которые последний раз обновлялись_ в последние 24 часа?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011
User.select('distinct users.*').joins(:rooms).where('rooms.updated_at > ?', 1.day.ago)
1 голос
/ 02 сентября 2011

Предполагается, что ваши модели следующие:

class User
  has_many :room_members
  has_many :rooms, :through => :room_members
end

class RoomMember
  belongs_to :user
  belongs_to :room
end

class Room
  has_many :room_members
  has_many :users, :through => :room_members
end

Вы можете использовать следующее:

User.all(:select => "DISTINCT users.*",
   :joins => :rooms, :conditions => ["rooms.updated_at >=", 1.day.ago])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...