From 8508d64a92d044e25d8e26b6cbe7d268b04a8ab3 Mon Sep 17 00:00:00 2001 From: Petko Bordjukov Date: Mon, 20 Apr 2015 18:35:22 +0300 Subject: [PATCH] Introduce a Proposable concern The Proposable concern defines a relation to a Proposition and defines scopes that translate to the statuses of the Proposition. --- app/models/concerns/proposable.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 app/models/concerns/proposable.rb diff --git a/app/models/concerns/proposable.rb b/app/models/concerns/proposable.rb new file mode 100644 index 0000000..aa79043 --- /dev/null +++ b/app/models/concerns/proposable.rb @@ -0,0 +1,11 @@ +module Proposable + extend ActiveSupport::Concern + + included do + has_one :proposition, as: :proposable + + Proposition.defined_enums["status"].keys.each do |status| + scope status.to_sym, -> { joins(:proposition).where(propositions: {status: Proposition.defined_enums["status"][status]}) } + end + end +end