Retrospring/app/models/comment.rb

35 lines
868 B
Ruby

class Comment < ApplicationRecord
belongs_to :user
belongs_to :answer
validates :user_id, presence: true
validates :answer_id, presence: true
has_many :smiles, class_name: "Appendable::Reaction", foreign_key: :parent_id, dependent: :destroy
validates :content, length: { maximum: 160 }
after_create do
Subscription.subscribe self.user, answer, false
Subscription.notify self, answer
user.increment! :commented_count
answer.increment! :comment_count
end
before_destroy do
rep = Report.where(target_id: self.id, type: 'Reports::Comment')
rep.each do |r|
unless r.nil?
r.deleted = true
r.save
end
end
Subscription.denotify self, answer
user.decrement! :commented_count
answer.decrement! :comment_count
end
def notification_type(*_args)
Notifications::Commented
end
end