28 行
863 B
Ruby
28 行
863 B
Ruby
class Locale < ApplicationRecord
|
|
after_create_commit :generate_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', en: 'en', fr: 'fr'
|
|
|
|
def self.nipponese = Locale.find('ja')
|
|
|
|
private
|
|
|
|
def generate_tag_names!
|
|
ApplicationRecord.transaction do
|
|
tag_ids = TagName.where(language_code:, primary_flg: true).pluck(:tag_id)
|
|
Tag.where.not(id: tag_ids).find_each do
|
|
TagName.create!(tag_id: _1.id,
|
|
language_code:,
|
|
name: TagName.generate_name(self, _1, _1.tag_name('ja')),
|
|
script_code:,
|
|
primary_flg: true,
|
|
auto_generated: true,
|
|
canonical_id: nil)
|
|
end
|
|
end
|
|
end
|
|
end
|