このコミットが含まれているのは:
@@ -142,7 +142,8 @@ class Tag < ApplicationRecord
|
||||
with_tagme: true,
|
||||
with_no_deerjikist: true,
|
||||
deny_deprecated: false,
|
||||
with_sections: false
|
||||
with_sections: false,
|
||||
created_by_user: nil
|
||||
if tag_names.any? { |n| n.downcase.start_with?('nico:') }
|
||||
raise NicoTagNormalisationError
|
||||
end
|
||||
@@ -171,7 +172,8 @@ class Tag < ApplicationRecord
|
||||
|
||||
name = TagName.canonicalise(locale, name).first
|
||||
|
||||
find_or_create_by_tag_name!(locale, name, category: (cat || :general)).tap do |tag|
|
||||
find_or_create_by_tag_name!(locale, name, category: (cat || :general),
|
||||
created_by_user:).tap do |tag|
|
||||
if deny_deprecated && tag.deprecated?
|
||||
raise DeprecatedTagNormalisationError, [tag.name(locale.language_code)]
|
||||
end
|
||||
@@ -259,7 +261,7 @@ class Tag < ApplicationRecord
|
||||
[left_end_ms, right_end_ms].max
|
||||
end
|
||||
|
||||
def find_or_create_by_tag_name! locale, name, category:
|
||||
def find_or_create_by_tag_name! locale, name, category:, created_by_user: nil
|
||||
language_code = locale.language_code
|
||||
name = name.to_s.strip
|
||||
|
||||
@@ -268,11 +270,10 @@ class Tag < ApplicationRecord
|
||||
tn = TagName.lock.find_by(language_code:, name:)
|
||||
next tn.tag if tn
|
||||
|
||||
tag = Tag.create!(category:)
|
||||
TagName.create!(tag:, language_code:, name:,
|
||||
script_code: locale.script_code, primary_flg: true,
|
||||
auto_generated: false)
|
||||
TagNameCompletion.for_tag!(tag)
|
||||
tag = Tag.new(category:)
|
||||
tag.tag_names.build(language_code:, name:, script_code: locale.script_code,
|
||||
primary_flg: true, auto_generated: false)
|
||||
TagNameCompletion.for_tag!(tag, created_by_user:)
|
||||
tag.association(:tag_names).reset
|
||||
|
||||
tag
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする