2017-02-11 05:20:42 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-11-25 19:23:47 +00:00
|
|
|
class Follow < ApplicationRecord
|
2017-02-11 05:20:42 +00:00
|
|
|
belongs_to :user
|
|
|
|
belongs_to :followed, polymorphic: true
|
|
|
|
has_one :follow_reason, dependent: :destroy
|
2017-11-25 19:23:47 +00:00
|
|
|
|
2017-02-11 05:20:42 +00:00
|
|
|
validates :user, presence: true
|
|
|
|
validates :followed, presence: true
|
|
|
|
validates :user, uniqueness: { scope: :followed, message: 'This entity is already followed by this user' }
|
2017-11-25 19:23:47 +00:00
|
|
|
|
2017-02-11 05:20:42 +00:00
|
|
|
after_create :add_subsetting
|
2017-09-08 17:17:42 +00:00
|
|
|
|
2018-01-21 22:21:00 +00:00
|
|
|
scope :active, (-> { where(muted: false) })
|
2017-09-08 17:17:42 +00:00
|
|
|
|
2017-02-11 05:20:42 +00:00
|
|
|
private
|
|
|
|
|
|
|
|
def add_subsetting
|
2018-01-21 22:21:00 +00:00
|
|
|
FollowReason.create!(follow: self)
|
2017-02-11 05:20:42 +00:00
|
|
|
end
|
|
|
|
end
|