# frozen_string_literal: true class Follow < ApplicationRecord belongs_to :user belongs_to :followed, polymorphic: true has_one :follow_reason, dependent: :destroy validates :user, presence: true validates :followed, presence: true validates :user, uniqueness: { scope: :followed, message: 'This entity is already followed by this user' } after_create :add_subsetting scope :active, -> { where(muted: false) } private def add_subsetting follow_reason = FollowReason.create!(follow: self) end end