このコミットが含まれているのは:
2026-09-28 01:15:00 +09:00
コミット 56b656109d
14個のファイルの変更、109行の追加、28行の削除
+3 -1
ファイルの表示
@@ -689,6 +689,7 @@ class PostsController < ApplicationController
version.tags_json
.select { _1.key?('tag_id') }
.map { Post.tag_snapshot_literal(_1) }
.compact
.sort
end
@@ -716,7 +717,7 @@ class PostsController < ApplicationController
next name if sections.empty?
"#{ name }#{ sections.map { Post.section_literal(_1) }.join }"
end
end.compact.sort
end
def post_incoming_snapshot locale:, title:, original_created_from:, original_created_before:,
@@ -725,6 +726,7 @@ class PostsController < ApplicationController
Tag.normalise_tags!(locale, tag_names,
with_tagme: false,
with_no_deerjikist: false,
deny_deprecated: true,
with_sections: true) => { tags:, sections: }
+15 -4
ファイルの表示
@@ -19,7 +19,8 @@ class TagVersionsController < ApplicationController
SQL
.select('tag_versions.*', 'prev.name AS prev_name', 'prev.category AS prev_category',
'prev.deprecated_at AS prev_deprecated_at',
'prev.aliases AS prev_aliases', 'prev.parent_tag_ids AS prev_parent_tag_ids')
'prev.aliases AS prev_aliases', 'prev.names AS prev_names',
'prev.parent_tag_ids AS prev_parent_tag_ids')
q = q.where('tag_versions.tag_id = ?', tag_id) if tag_id
count = q.except(:select, :order, :limit, :offset).count
@@ -38,8 +39,10 @@ class TagVersionsController < ApplicationController
users_by_id = User.where(id: user_ids).pluck(:id, :name).to_h
rows.map do |row|
cur_aliases = split_values(row.aliases)
prev_aliases = split_values(row.attributes['prev_aliases'])
current_names = names_for_locale(row.names, language_code)
previous_names = names_for_locale(row.attributes['prev_names'], language_code)
cur_aliases = current_names.reject { _1['primary_flg'] }.map { _1['name'] }
prev_aliases = previous_names.reject { _1['primary_flg'] }.map { _1['name'] }
cur_parent_tag_ids = split_parent_tag_ids(row.parent_tag_ids)
prev_parent_tag_ids = split_parent_tag_ids(row.attributes['prev_parent_tag_ids'])
@@ -63,7 +66,8 @@ class TagVersionsController < ApplicationController
version_no: row.version_no,
event_type: row.event_type,
names: row.names,
name: { current: row.name, prev: row.attributes['prev_name'] },
name: { current: current_names.find { _1['primary_flg'] }&.fetch('name'),
prev: previous_names.find { _1['primary_flg'] }&.fetch('name') },
category: { current: row.category, prev: row.attributes['prev_category'] },
deprecated_at: { current: row.deprecated_at&.iso8601,
prev: row.attributes['prev_deprecated_at']&.iso8601 },
@@ -93,5 +97,12 @@ class TagVersionsController < ApplicationController
def split_values(values) = values.to_s.split(/\s+/).reject(&:blank?)
def names_for_locale names, language_code
values = names.is_a?(String) ? JSON.parse(names) : Array(names)
values.select { _1['language_code'] == language_code }
rescue JSON::ParserError
[]
end
def split_parent_tag_ids(values) = split_values(values).map(&:to_i)
end
+8 -3
ファイルの表示
@@ -473,7 +473,7 @@ class TagsController < ApplicationController
end
rename_tag_name!(locale, tag, name) if name_changed
alias_names << old_name if name_changed
alias_names << old_name if name_changed && old_name.present?
alias_names.delete(name)
update_aliases!(locale, tag, alias_names)
@@ -772,6 +772,7 @@ class TagsController < ApplicationController
script_code: locale.script_code,
name:,
primary_flg: true)
tag.association(:tag_names).reset
end
return
end
@@ -786,6 +787,9 @@ class TagsController < ApplicationController
TagVersioning.ensure_snapshot!(old_owner_tag, created_by_user: current_user)
end
current_tag_name.wiki_page&.update!(tag_name_id: promoted_tag_name.id)
current_tag_name.association(:wiki_page).reset
current_tag_name.update!(canonical_id: promoted_tag_name.id, primary_flg: false)
promoted_tag_name.update!(tag:, canonical_id: nil, primary_flg: true)
@@ -797,7 +801,6 @@ class TagsController < ApplicationController
alias_tag_name.update!(canonical_id: promoted_tag_name.id, primary_flg: false)
end
current_tag_name.wiki_page&.update!(tag_name_id: promoted_tag_name.id)
tag.update!(tag_name_id: promoted_tag_name.id)
current_tag_name.association(:wiki_page).reset
current_tag_name.association(:tag).reset
@@ -815,7 +818,9 @@ class TagsController < ApplicationController
affected_tags = [tag]
primary_tag_name = tag.tag_name(locale.language_code)
primary_tag_name = TagName.find_by!(tag:,
language_code: locale.language_code,
primary_flg: true)
current_aliases = tag.tag_names.where(language_code: locale.language_code,
primary_flg: false).to_a
+5 -1
ファイルの表示
@@ -94,7 +94,11 @@ class WikiPagesController < ApplicationController
return render_unprocessable_entity('タイトルは必須です.', field: :title) if title.blank?
return render_unprocessable_entity('本文は必須です.', field: :body) if body.blank?
tag_name = TagName.find_or_create_by!(name: title)
tag_name = TagName.find_or_create_by!(language_code: 'ja', name: title) do |name|
name.script_code = 'Jpan'
name.primary_flg = true
name.auto_generated = false
end
page =
Wiki::Commit.create_content!(