module Raddar class Followership < ActiveRecord::Base belongs_to :user belongs_to :followable, polymorphic: true, inverse_of: :followers validates :user_id, presence: true, uniqueness: { scope: [:followable_id, :followable_type] } validates :followable_id, presence: true validate :user_and_followable_must_be_different private def user_and_followable_must_be_different if self.user.present? && self.user == self.followable self.errors[:base] << 'User cannot follow himself/herself.' end end end end