Ruby on rails 如何查询以基于嵌套资源获取所有用户?

Ruby on rails 如何查询以基于嵌套资源获取所有用户?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,鉴于: 在rails中,如何获取属于过去24小时内最后更新的所有房间的所有用户 谢谢假设您的型号如下: User.select('distinct users.*').joins(:rooms).where('rooms.updated_at > ?', 1.day.ago) 您可以使用以下选项: class User has_many :room_members has_many :rooms, :through => :room_members end class R

鉴于:

在rails中,如何获取属于过去24小时内最后更新的所有房间的所有用户


谢谢

假设您的型号如下:

User.select('distinct users.*').joins(:rooms).where('rooms.updated_at > ?', 1.day.ago)
您可以使用以下选项:

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.select('distinct users.*').joins(:rooms).where('rooms.updated_at > ?', 1.day.ago)
您可以使用以下选项:

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

谢谢,但有以下错误:ArgumentError:Unknown key(s):Join谢谢,但有以下错误:ArgumentError:Unknown key(s):Join返回用户多次,是否有方法获得唯一的?
user.distinct(“users.id”).join(:rooms)。其中('rooms.updated\u at>?,1.day.ago)
应该执行操作。。很抱歉错过了两份。。更新答案以选择不同的记录如果多次返回用户,是否有方法获得唯一的?
user.distinct(“users.id”).join(:rooms)。其中('rooms.updated_at>?',1.day.ago)
应该执行操作。。很抱歉错过了两份。。更新答案以选择具有不同用户返回的不同记录具有不同用户返回