Sha256: 824d6abdbb281eda72d2064ce40feed0b4071e5581cc4f12c1cbe8ead7170cf6

Contents?: true

Size: 825 Bytes

Versions: 2

Compression:

Stored size: 825 Bytes

Contents

module Guts
  # Category model
  class Category < ActiveRecord::Base
    extend FriendlyId
    include NavigatableConcern
    include TrackableConcern
    include MultisiteScopeConcern

    validates :title, presence: true, length: { minimum: 3 }

    belongs_to :site
    has_many :categorizations
    has_many :tracks, as: :object
    has_many :contents, through: :categorizations
    has_many :media, as: :filable, dependent: :destroy
    has_many :metafields, as: :fieldable, dependent: :destroy

    friendly_id :title, use: [:slugged, :scoped, :finders], scope: :site_id
    navigatable :title, format: ':title'
    trackable :create, :update, :destroy, fields: [:title, :slug]

    # Updates slug if title changes
    # @return [Boolean]
    def should_generate_new_friendly_id?
      title_changed?
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
guts-1.4.0 app/models/guts/category.rb
guts-1.3.6 app/models/guts/category.rb