class Locale < ApplicationRecord after_save :generate_tag_names!, if: :needs_tag_names? belongs_to :language, foreign_key: :language_code, primary_key: :code belongs_to :script, foreign_key: :script_code, primary_key: :code enum :code, ja: 'ja', ain_kana: 'ain-Kana' def self.nipponese = Locale.find('ja') private def needs_tag_names? deprecated_at.nil? && (saved_change_to_code? || saved_change_to_deprecated_at?) end def generate_tag_names! = TagNameCompletion.for_locale!(self) end