NerdDiffer/job_tracker

View on GitHub
app/models/category.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Category < ActiveRecord::Base
  extend FriendlyId

  friendly_id :name

  has_and_belongs_to_many :companies, join_table: 'companies_categories'

  validates :name, presence: true
  validates :permalink, uniqueness: true, presence: true

  after_save :refresh_search_suggestions

  scope :sorted, -> { order(name: :asc) }

  def permalink
    self.permalink = name.parameterize
  end

  def display_name
    name.titleize
  end

  def company_names
    companies.map(&:name)
  end

  private

  def refresh_search_suggestions
    SearchSuggestion.refresh_category_names
  end
end