clarion/app/models/concerns/proposable.rb

30 lines
716 B
Ruby
Raw Normal View History

module Proposable
extend ActiveSupport::Concern
included do
has_one :proposition, as: :proposable, dependent: :destroy
has_one :proposer, through: :proposition
2015-08-20 01:42:35 +03:00
delegate :email, to: :proposer, prefix: true
scope :confirmed, -> { joins(:proposition).where.not(propositions: {confirmed_at: nil}) }
Proposition.defined_enums["status"].keys.each do |status|
scope status.to_sym, -> { joins(:proposition).where(propositions: {status: Proposition.defined_enums["status"][status]}) }
end
end
2015-08-20 01:42:35 +03:00
def proposable_type
self.class.model_name.human
end
def notification_email
conference.email
end
def proposable_title
title
end
def proposable_description
end
end