aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/query_methods.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-01-24 14:29:03 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-01-24 14:29:03 -0800
commit170fb5c80c990688f5f372a3ba0e6cb75fb6edf0 (patch)
tree94d393965d681c1ac236a9eb183ba7990be28065 /activerecord/lib/active_record/relation/query_methods.rb
parentde6a35b38a6e633e7639de25f6a83c7892fe8a01 (diff)
downloadrails-170fb5c80c990688f5f372a3ba0e6cb75fb6edf0.tar.gz
rails-170fb5c80c990688f5f372a3ba0e6cb75fb6edf0.tar.bz2
rails-170fb5c80c990688f5f372a3ba0e6cb75fb6edf0.zip
reduce the number of queries on IN clauses, fix relation queries in `where`
Diffstat (limited to 'activerecord/lib/active_record/relation/query_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 46c0d6206f..42849d6bc9 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -764,6 +764,11 @@ module ActiveRecord
[@klass.send(:sanitize_sql, other.empty? ? opts : ([opts] + other))]
when Hash
attributes = @klass.send(:expand_hash_conditions_for_aggregates, opts)
+
+ attributes.values.grep(ActiveRecord::Relation) do |rel|
+ self.bind_values += rel.bind_values
+ end
+
PredicateBuilder.build_from_hash(klass, attributes, table)
else
[opts]