From 9563aad9fa01ac206b752fa28a0ff594dcd55e32 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 16 Aug 2013 15:12:03 +1000 Subject: [PATCH] Find exchanges with a particular variant --- app/models/exchange.rb | 1 + spec/models/exchange_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/app/models/exchange.rb b/app/models/exchange.rb index fe7f04933c..8ad87d5302 100644 --- a/app/models/exchange.rb +++ b/app/models/exchange.rb @@ -17,4 +17,5 @@ class Exchange < ActiveRecord::Base scope :incoming, joins(:order_cycle).where('exchanges.receiver_id = order_cycles.coordinator_id') scope :outgoing, joins(:order_cycle).where('exchanges.sender_id = order_cycles.coordinator_id') + scope :with_variant, lambda { |variant| joins(:exchange_variants).where('exchange_variants.variant_id = ?', variant) } end diff --git a/spec/models/exchange_spec.rb b/spec/models/exchange_spec.rb index 523ee23e5e..ff3829ec67 100644 --- a/spec/models/exchange_spec.rb +++ b/spec/models/exchange_spec.rb @@ -60,5 +60,13 @@ describe Exchange do it "finds outgoing exchanges" do Exchange.outgoing.should == [outgoing_exchange] end + + it "finds exchanges with a particular variant" do + v = create(:variant) + ex = create(:exchange) + ex.variants << v + + Exchange.with_variant(v).should == [ex] + end end end