给定两个模型:
User
has_many :group_members
has_many :groups, :through => :group_members
GroupMember
belongs_to :group
belongs_to :user
Group
has_many :group_members
has_many :users, :through => :group_members
has_many :group_invites
GroupInvite
belongs_to :user
感谢 Rails,我可以轻松获取所有用户组:
组 = current_user.groups
然后我获取这个组列表并遍历以创建一个 JSON 对象,如下所示:
groups.each do |group|
....
group.group_members.count
group.invites.first_code
等等等等 问题是这会导致大量查询,因为我还没有找到一种方法来使用 include(:) 来查询所有 group_members 并通过一个查询而不是每个循环的查询来邀请所有组。关于如何使用的任何建议包括:
current_user.groups.includes(:group_members, :invites) ?