aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/finder_methods.rb
diff options
context:
space:
mode:
authorBen Woosley <ben.woosley@gmail.com>2013-05-10 11:39:08 +0200
committerBen Woosley <ben.woosley@gmail.com>2013-05-10 17:46:04 +0200
commitcd04a99ba4b5227fb103b6d4e7504c770833e612 (patch)
treeab6182bcff7cd84518242f012c5562e68e52b17c /activerecord/lib/active_record/relation/finder_methods.rb
parentec75ff34517c98d8feb6ad81ae79c44e611b92e7 (diff)
downloadrails-cd04a99ba4b5227fb103b6d4e7504c770833e612.tar.gz
rails-cd04a99ba4b5227fb103b6d4e7504c770833e612.tar.bz2
rails-cd04a99ba4b5227fb103b6d4e7504c770833e612.zip
Move the except(:select) inside the construct_limited_ids_condition method to pair it closely with its motivation.
Diffstat (limited to 'activerecord/lib/active_record/relation/finder_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index a51db614cd..531343782e 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -234,7 +234,7 @@ module ActiveRecord
limitable_reflections = using_limitable_reflections?(join_dependency.reflections)
if !limitable_reflections && relation.limit_value
- limited_id_condition = construct_limited_ids_condition(relation.except(:select))
+ limited_id_condition = construct_limited_ids_condition(relation)
relation = relation.where(limited_id_condition)
end
@@ -247,7 +247,7 @@ module ActiveRecord
values = @klass.connection.columns_for_distinct(
"#{quoted_table_name}.#{quoted_primary_key}", relation.order_values)
- relation = relation.dup.select(values).distinct!
+ relation = relation.except(:select).select(values).distinct!
id_rows = @klass.connection.select_all(relation.arel, 'SQL', relation.bind_values)
ids_array = id_rows.map {|row| row[primary_key]}