0

我有两个模型UserServiceUserhas_and_belongs_to_manyServices同样适用于Services

class User < ActiveRecord::Base
  has_and_belongs_to_many :services
end

class Service < ActiveRecord::Base
  has_and_belongs_to_many :users
end

我需要找到所有提供选定服务的用户。就像是:

@users = User.where(:services_ids => [2,3,4])

4

2 回答 2

1

这应该有效:

User.join(:services).where(:services.id => [2,3,4]).uniq
于 2012-06-05T06:01:11.230 回答
0

尝试这个:

@users = Service.where(:id => [2,3,4])).map{|svc| svc.users}.uniq.flatten

或者

@users = User.all(:include => :services, :conditions => ["services.id in ?", (2,3,4)])
于 2012-06-04T23:54:25.707 回答