Module: Groupify::ActiveRecord::Group::ClassMethods::MemberAssociationExtensions

Defined in:
lib/groupify/adapter/active_record/group.rb

Instance Method Summary collapse

Instance Method Details

#as(membership_type) ⇒ Object



103
104
105
# File 'lib/groupify/adapter/active_record/group.rb', line 103

def as(membership_type)
  where(group_memberships: {membership_type: membership_type})
end

#delete(*args) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/groupify/adapter/active_record/group.rb', line 107

def delete(*args)
  opts = args.extract_options!
  members = args

  if opts[:as]
    proxy_association.owner.group_memberships.
        where(member_id: members.map(&:id), member_type: proxy_association.reflection.options[:source_type]).
        as(opts[:as]).
        delete_all
  else
    super(*members)
  end
end

#destroy(*args) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/groupify/adapter/active_record/group.rb', line 121

def destroy(*args)
  opts = args.extract_options!
  members = args

  if opts[:as]
    proxy_association.owner.group_memberships.
        where(member_id: members.map(&:id), member_type: proxy_association.reflection.options[:source_type]).
        as(opts[:as]).
        destroy_all
  else
    super(*members)
  end
end