class PostImplication < ApplicationRecord self.primary_key = :post_id, :parent_post_id belongs_to :post, inverse_of: :parent_post_implications belongs_to :parent_post, class_name: 'Post', inverse_of: :child_post_implications validates :post_id, presence: true, uniqueness: { scope: :parent_post_id } validates :parent_post_id, presence: true validate :parent_post_mustnt_be_itself private def parent_post_mustnt_be_itself if parent_post_id == post_id errors.add :parent_post_id, '親投稿に同じ投稿を設定することはできません.' end end end