Module: Groupify::ActiveRecord::Group
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/groupify/adapter/active_record/group.rb
Overview
Usage:
class Group < ActiveRecord::Base
acts_as_group, :members => [:users]
...
end
group.add(member)
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #add(*args) ⇒ Object
- #member_classes ⇒ Object
-
#merge!(source) ⇒ Object
Merge a source group into this group.
Instance Method Details
#add(*args) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/groupify/adapter/active_record/group.rb', line 25 def add(*args) opts = args. membership_type = opts[:as] members = args.flatten return unless members.present? clear_association_cache members.each do |member| member.group_memberships.where(group_id: self.id).first_or_create! if membership_type member.group_memberships.where(group_id: self.id, membership_type: membership_type).first_or_create! end member.clear_association_cache end end |
#member_classes ⇒ Object
21 22 23 |
# File 'lib/groupify/adapter/active_record/group.rb', line 21 def member_classes self.class.member_classes end |
#merge!(source) ⇒ Object
Merge a source group into this group.
43 44 45 |
# File 'lib/groupify/adapter/active_record/group.rb', line 43 def merge!(source) self.class.merge!(source, self) end |