class CommentSmile < ApplicationRecord belongs_to :user belongs_to :comment validates :user_id, presence: true, uniqueness: { scope: :comment_id, message: "already smiled comment" } validates :comment_id, presence: true after_create do Notification.notify comment.user, self unless comment.user == user user.increment! :comment_smiled_count comment.increment! :smile_count end before_destroy do Notification.denotify comment.user, self unless comment.user == user user.decrement! :comment_smiled_count comment.decrement! :smile_count end def notification_type(*_args) Notifications::CommentSmiled end end