app/models/sdg/local_target.rb
class SDG::LocalTarget < ApplicationRecord
include SDG::Related
translates :title, touch: true
translates :description, touch: true
include Globalizable
validates_translation :title, presence: true
validates_translation :description, presence: true
validates :code, presence: true, uniqueness: true,
format: ->(local_target) { /\A#{local_target.target&.code}\.\d+/ }
validates :target, presence: true
validates :goal, presence: true
belongs_to :target
belongs_to :goal
before_validation :set_related_goal
alias_method :long_title, :title
def self.[](code)
find_by!(code: code)
end
private
def set_related_goal
self.goal ||= target&.goal
end
end