このコミットが含まれているのは:
@@ -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!
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする