0

我正在尝试选择@current_user 不是其成员的组

我的模型的相关部分如下:

class Group < ActiveRecord::Base
    belongs_to :user
    has_many :group_memberships 
    has_many :members, :class_name => "User", :through=>:group_memberships
 ...

class User < ActiveRecord::Base
    has_many :group_memberships, :foreign_key => 'member_id'
    has_many :groups, :through => :group_memberships
...

class GroupMembership < ActiveRecord::Base
    belongs_to :member, :class_name=>"User"  
    belongs_to :group
end

谢谢!

4

2 回答 2

0

有这样的方法:

def group_ids_not_a_member_of
  # get all group_ids and subtract out the ids that he is a member of
  Group.pluck('id') - current_user.groups.map(&:id) 
end

然后

user.group_ids_not_a_member_of
于 2013-07-30T19:55:27.223 回答
0

您可以尝试执行以下操作:

@groups = Group.where("id NOT IN (?)", current_user.groups)

更多信息可以在Active Record Query中找到。

于 2013-07-30T20:01:24.807 回答