This rule was added in rubocop 1.79. We were inconsistent about it, so we're adding it to get more consistency.
45 lines
980 B
Ruby
45 lines
980 B
Ruby
class Budget
|
|
class Group < ApplicationRecord
|
|
include Sluggable
|
|
|
|
translates :name, touch: true
|
|
include Globalizable
|
|
|
|
translation_class_delegate :budget
|
|
|
|
class Translation
|
|
validate :name_uniqueness_by_budget
|
|
|
|
def name_uniqueness_by_budget
|
|
if budget.groups.joins(:translations)
|
|
.where(name: name)
|
|
.where.not("budget_group_translations.budget_group_id": budget_group_id).any?
|
|
errors.add(:name, I18n.t("errors.messages.taken"))
|
|
end
|
|
end
|
|
end
|
|
|
|
belongs_to :budget
|
|
|
|
has_many :headings, dependent: :destroy
|
|
|
|
validates_translation :name, presence: true
|
|
validates :budget_id, presence: true
|
|
validates :slug, presence: true, format: /\A[a-z0-9\-_]+\z/
|
|
|
|
def self.sort_by_name
|
|
all.sort_by(&:name)
|
|
end
|
|
|
|
def multiple_headings?
|
|
headings.size > 1
|
|
end
|
|
|
|
private
|
|
|
|
def generate_slug?
|
|
slug.nil? || budget.drafting?
|
|
end
|
|
end
|
|
end
|