From 89997cec9b5ac0cf6b1adbce5144b052395cc5b4 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Wed, 15 Jan 2014 14:34:48 -0300 Subject: [PATCH] rails3: fix use of Person.or_scope --- app/models/profile.rb | 10 +++++++++- test/unit/profile_test.rb | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/models/profile.rb b/app/models/profile.rb index 4b315c8..1963ed1 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -92,7 +92,15 @@ class Profile < ActiveRecord::Base def members scopes = plugins.dispatch_scopes(:organization_members, self) scopes << Person.members_of(self) - scopes.size == 1 ? scopes.first : Person.or_scope(scopes) + + clauses = scopes.map do |relation| + clause = relation.arel.where_clauses.map { |clause| "(#{clause})" }.join(' AND ') + "(#{clause})" + end.join(' OR ') + + joins = scopes.map { |relation| relation.joins_values }.flatten.uniq + selects = scopes.map { |relation| relation.select_values }.flatten.uniq + Person.select(selects).joins(joins).where(clauses) end def members_count diff --git a/test/unit/profile_test.rb b/test/unit/profile_test.rb index d6bce55..53ac3ff 100644 --- a/test/unit/profile_test.rb +++ b/test/unit/profile_test.rb @@ -1807,7 +1807,7 @@ class ProfileTest < ActiveSupport::TestCase assert_includes original_community.members, original_member assert_includes original_community.members, plugin1_member assert_includes original_community.members, plugin2_member - assert 3, original_community.members.count + assert_equal 3, original_community.members.count end private -- libgit2 0.21.2