This commit is contained in:
@@ -10,7 +10,7 @@ class NicoTagRelation < ApplicationRecord
|
|||||||
private
|
private
|
||||||
|
|
||||||
def nico_tag_must_be_nico
|
def nico_tag_must_be_nico
|
||||||
if nico_tag && nico_tag.category != :nico
|
if nico_tag && nico_tag.category != 'nico'
|
||||||
errors.add :nico_tag_id, 'タグのカテゴリがニコニコである必要があります.'
|
errors.add :nico_tag_id, 'タグのカテゴリがニコニコである必要があります.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class Post < ApplicationRecord
|
class Post < ApplicationRecord
|
||||||
belongs_to :parent, class_name: 'Post', optional: true, foreign_key: 'parent_id'
|
belongs_to :parent, class_name: 'Post', optional: true, foreign_key: 'parent_id'
|
||||||
belongs_to :user, foreign_key: ''
|
belongs_to :uploaded_user, class_name: 'User', optional: true
|
||||||
has_many :post_tags, dependent: :destroy
|
has_many :post_tags, dependent: :destroy
|
||||||
has_many :tags, through: :post_tags
|
has_many :tags, through: :post_tags
|
||||||
has_many :user_post_views, dependent: :destroy
|
has_many :user_post_views, dependent: :destroy
|
||||||
|
|||||||
@@ -15,5 +15,15 @@ class Tag < ApplicationRecord
|
|||||||
validates :name, presence: true, length: { maximum: 255 }
|
validates :name, presence: true, length: { maximum: 255 }
|
||||||
validates :category, presence: true, inclusion: { in: Tag.categories.keys }
|
validates :category, presence: true, inclusion: { in: Tag.categories.keys }
|
||||||
|
|
||||||
|
validate :nico_tag_name_must_start_with_nico
|
||||||
|
|
||||||
scope :nico_tags, -> { where category: :nico }
|
scope :nico_tags, -> { where category: :nico }
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def nico_tag_name_must_start_with_nico
|
||||||
|
if category == 'nico' && name&.[](0, 5) != 'nico:'
|
||||||
|
errors.add :name, 'ニコニコ・タグの命名規則に反してゐます.'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user