32 lines
633 B
Ruby
32 lines
633 B
Ruby
class Budget
|
|
class Group < ActiveRecord::Base
|
|
include Sluggable
|
|
|
|
translates :name, touch: true
|
|
include Globalizable
|
|
|
|
belongs_to :budget
|
|
|
|
has_many :headings, dependent: :destroy
|
|
|
|
before_validation :assign_model_to_translations
|
|
|
|
validates_translation :name, presence: true
|
|
validates :budget_id, presence: true
|
|
validates :slug, presence: true, format: /\A[a-z0-9\-_]+\z/
|
|
|
|
scope :sort_by_name, -> { includes(:translations).order(:name) }
|
|
|
|
def single_heading_group?
|
|
headings.count == 1
|
|
end
|
|
|
|
private
|
|
|
|
def generate_slug?
|
|
slug.nil? || budget.drafting?
|
|
end
|
|
|
|
end
|
|
end
|