Module: Groupify::ActiveRecord::Group
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/groupify/adapter/active_record/group.rb
Overview
Usage:
class Group < ActiveRecord::Base
groupify :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
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/groupify/adapter/active_record/group.rb', line 29 def add(*args) opts = args. membership_type = opts[:as] members = args.flatten return unless members.present? __send__(:clear_association_cache) members.each do |member| member.groups << self unless member.groups.include?(self) if membership_type member.group_memberships_as_member.where(group_id: id, group_type: self.class.model_name.to_s, membership_type: membership_type).first_or_create! end member.__send__(:clear_association_cache) end end |
#member_classes ⇒ Object
25 26 27 |
# File 'lib/groupify/adapter/active_record/group.rb', line 25 def member_classes self.class.member_classes end |
#merge!(source) ⇒ Object
Merge a source group into this group.
47 48 49 |
# File 'lib/groupify/adapter/active_record/group.rb', line 47 def merge!(source) self.class.merge!(source, self) end |