このコミットが含まれているのは:
@@ -152,11 +152,9 @@ class Tag < ApplicationRecord
|
||||
st.post_tags.find_each do |pt|
|
||||
if PostTag.kept.exists?(post_id: pt.post_id, tag_id: target_tag.id)
|
||||
pt.discard_by!(nil)
|
||||
# discard 後の update! は禁止なので DB を直に更新
|
||||
pt.update_columns(tag_id: target_tag.id, updated_at: Time.current)
|
||||
else
|
||||
pt.update!(tag: target_tag)
|
||||
end
|
||||
# discard 後の update! は禁止なので DB を直に更新
|
||||
pt.update_columns(tag_id: target_tag.id, updated_at: Time.current)
|
||||
end
|
||||
|
||||
tag_name = st.tag_name
|
||||
@@ -167,7 +165,8 @@ class Tag < ApplicationRecord
|
||||
if nico_flg
|
||||
tag_name.destroy!
|
||||
else
|
||||
tag_name.update!(canonical: target_tag.tag_name)
|
||||
tag_name.update_columns(canonical_id: target_tag.tag_name&.id,
|
||||
updated_at: Time.current)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
class TagName < ApplicationRecord
|
||||
before_validation :sanitise_name
|
||||
|
||||
has_one :tag
|
||||
has_one :wiki_page
|
||||
|
||||
@@ -12,6 +10,7 @@ class TagName < ApplicationRecord
|
||||
validate :canonical_must_be_canonical
|
||||
validate :alias_name_must_not_have_prefix
|
||||
validate :canonical_must_not_be_present_with_tag_or_wiki_page
|
||||
validate :name_must_be_sanitised
|
||||
|
||||
def self.canonicalise names
|
||||
names = Array(names).map { |n| n.to_s.strip }.reject(&:blank?)
|
||||
@@ -45,4 +44,10 @@ class TagName < ApplicationRecord
|
||||
errors.add :canonical, 'タグもしくは Wiki の参照がある名前はエーリアスになれません.'
|
||||
end
|
||||
end
|
||||
|
||||
def name_must_be_sanitised
|
||||
if name != TagNameSanitisationRule.sanitise(name)
|
||||
errors.add :name, '名前に使用できない文字が含まれてゐます.'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
新しい課題から参照
ユーザをブロックする