sqm-dashboards/app/models/category.rb
2017-10-19 15:52:15 -04:00

37 lines
904 B
Ruby

class Category < ApplicationRecord
has_many :questions
belongs_to :parent_category, class_name: 'Category', foreign_key: :parent_category_id
has_many :child_categories, class_name: 'Category', foreign_key: :parent_category_id
has_many :school_categories
validates :name, presence: true
scope :for_parent, -> (category=nil) { where(parent_category_id: category.try(:id)) }
include FriendlyId
friendly_id :name, :use => [:slugged]
def path
p = self
items = [p]
items << p while (p = p.try(:parent_category))
items.uniq.compact.reverse
end
def root_identifier
path.first.name.downcase.gsub(/\s/, '-')
end
def root_index
[
"teachers-and-the-teaching-environment",
"school-culture",
"resources",
"academic-learning",
"citizenship-and-wellbeing",
"pilot-family-questions"
].index(root_identifier) || 0
end
end