Sha256: b820dc9354605808bb2481b12f8dcc832a109fb0d0c53e7e3da35cda4ce24218

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

module Ecm::Courses
  class Course < ApplicationRecord
    # acts as list
    acts_as_list scope: :category

    # associations
    belongs_to :course_category

    has_many :course_dates, ->() { order(:start_at) },
             dependent: :destroy

    # # attibutes
    # attr_accessible :description,
    #                 :ecm_courses_course_category_id,
    #                 :locale,
    #                 :name

    # friendly id
    extend FriendlyId
    friendly_id :name, use: [:slugged]

    # validations
    validates :course_category, presence: true
    validates :locale, inclusion: { in: I18n.available_locales.map(&:to_s) }, allow_blank: true
    validates :name, presence: true

    def heading_name
      locale_prefix = locale.blank? ? '' : "[#{locale}] "
      "#{locale_prefix}#{name}"
    end

    def to_s
      "#{course_category.name} - #{name}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ecm_courses2-0.0.1 app/models/ecm/courses/course.rb