clarion/app/models/proposition.rb

22 lines
693 B
Ruby

class Proposition < ActiveRecord::Base
belongs_to :proposer, class_name: "User"
belongs_to :proposable, polymorphic: true, dependent: :destroy
enum status: [:undecided, :approved, :rejected, :backup]
delegate :proposable_title, :proposable_type, :proposable_description, to: :proposable
after_commit :send_creation_notification, on: [:create]
before_destroy :send_withdrawal_notification
def confirm!
update(confirmed_at: Time.now)
end
def send_creation_notification
PropositionMailer.new_proposition_notification(self).deliver_later
end
def send_withdrawal_notification
PropositionMailer.proposition_withdrawal_notification(self).deliver_later
end
end