このコミットが含まれているのは:
2026-09-27 15:07:24 +09:00
コミット c912bebbee
40個のファイルの変更、473行の追加、377行の削除
+3 -6
ファイルの表示
@@ -51,12 +51,10 @@ class Tag < ApplicationRecord
has_many :tag_versions
has_many :tag_names
belongs_to :tag_name
delegate :wiki_page, to: :tag_name
attribute :version_no, :integer, default: 1
delegate :name, to: :tag_name, allow_nil: true
validates :tag_name, presence: true
enum :category, deerjikist: 'deerjikist',
@@ -84,9 +82,8 @@ class Tag < ApplicationRecord
'mtr:' => :material,
'meta:' => :meta }.freeze
def name= val
(self.tag_name ||= build_tag_name).name = val
end
def tag_name(language_code) = tag_names.find_by(language_code:, primary_flg: true)
def name(language_code) = tag_name(language_code)&.name
def deprecated? = deprecated_at?
@@ -276,7 +273,7 @@ class Tag < ApplicationRecord
end
TagVersioning.record!(source_tag, event_type: :discard, created_by_user:)
source_tag.tag_names.update_all(tag_id: source_tag.id, primary_key: false,
source_tag.tag_names.update_all(tag_id: target_tag.id, primary_flg: false,
updated_at: Time.current)
source_tag.destroy!
+3 -3
ファイルの表示
@@ -13,8 +13,8 @@ class TagName < ApplicationRecord
def primary? = primary_flg
def canonical = TagName.find_by(language:, tag:, primary_flg: true)
def aliases = TagName.where(language:, tag:, primary_flg: false)
def canonical = TagName.find_by(language_code:, tag_id:, primary_flg: true)
def aliases = TagName.where(language_code:, tag_id:, primary_flg: false)
def self.canonicalise locale, names
names = Array(names).map { |n| n.to_s.strip }.reject(&:blank?)
@@ -23,7 +23,7 @@ class TagName < ApplicationRecord
tns = TagName.where(language_code: locale.language_code, name: names).index_by(&:name)
names.map { |name|
if tns[name].primary_flg
if !(tns[name]) || tns[name].primary?
name
else
TagName.find_by(language_code: locale.language_code,