Module: Monarchy::ActsAsHierarchy::ClassMethods

Defined in:
lib/monarchy/acts_as_hierarchy.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_hierarchyObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/monarchy/acts_as_hierarchy.rb', line 8

def acts_as_hierarchy
  extend Monarchy::ActsAsHierarchy::SupportMethods
  self.table_name = 'monarchy_hierarchies'
  has_closure_tree dependent: :destroy

  has_many :members, class_name: "::#{Monarchy.member_class}", dependent: :destroy
  has_many :users, through: :members, class_name: "::#{Monarchy.user_class}"
  belongs_to :resource, polymorphic: true

  include_scopes

  validates :resource_type, presence: true
  validates :resource_id, uniqueness: { scope: [:resource_type] }, presence: true

  include Monarchy::ActsAsHierarchy::InstanceMethods
end