| @@ -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 | ||||