class Follow < ActiveRecord::Base belongs_to :account belongs_to :target_account, class_name: 'Account' has_one :stream_entry, as: :activity, dependent: :destroy validates :account, :target_account, presence: true validates :account_id, uniqueness: { scope: :target_account_id } def verb self.destroyed? ? :unfollow : :follow end def target self.target_account end def object_type target.object_type end def content self.destroyed? ? "#{self.account.acct} is no longer following #{self.target_account.acct}" : "#{self.account.acct} started following #{self.target_account.acct}" end def title content end def mentions [] end after_create do self.account.stream_entries.create!(activity: self) end end