我想查询两个用户之间的常见组.
这是我的模特:
class User < ActiveRecord::Base
has_many :group_memberships
has_many :groups, through: :group_memberships
end
Run Code Online (Sandbox Code Playgroud)
class Group < ActiveRecord::Base
has_many :group_memberships
has_many :users, through: :group_memberships
end
Run Code Online (Sandbox Code Playgroud)
class GroupMembership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
Run Code Online (Sandbox Code Playgroud)
可以说,我有两个用户A和B,我想得到用户A和用户B是共同成员的组.
用户A是组[W,X,Y]的成员
用户B是Groups [W,X,Z]的成员
使用此查询,预期答案将是组[W,X]
(Groups_From_A∩Group_From_B)
我已经找到了一些答案,但他们并没有只使用活动记录:
user_a.groups & user_b.groups
Run Code Online (Sandbox Code Playgroud)
我不想在内存中这样做,而是在数据库中.