class Smile < ActiveRecord::Base belongs_to :user belongs_to :answer validates :user_id, presence: true, uniqueness: { scope: :answer_id, message: "already smiled answer" } validates :answer_id, presence: true after_create do Notification.notify answer.user, self unless answer.user == user user.increment! :smiled_count answer.increment! :smile_count end before_destroy do Notification.denotify answer.user, self unless answer.user == user user.decrement! :smiled_count answer.decrement! :smile_count end def notification_type(*_args) Notifications::Smiled end end