diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-01-24 14:29:03 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-01-24 14:29:03 -0800 |
commit | 170fb5c80c990688f5f372a3ba0e6cb75fb6edf0 (patch) | |
tree | 94d393965d681c1ac236a9eb183ba7990be28065 /activerecord/lib/active_record/relation/query_methods.rb | |
parent | de6a35b38a6e633e7639de25f6a83c7892fe8a01 (diff) | |
download | rails-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.rb | 5 |
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] |