aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/sanitization.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2014-12-02 11:45:12 -0700
committerSean Griffin <sean@seantheprogrammer.com>2014-12-02 11:45:12 -0700
commit3317d6958cf5627ac8db8ce4086639efa5adad43 (patch)
tree9c2b370e8aae4a6744488a6c6e0837c38fb9454e /activerecord/lib/active_record/sanitization.rb
parentf69eabb0e67e4ff58d2fd58f7b6e57aa88685556 (diff)
parent502bc87fbaeb2917e3d7eb3d26badff887073c4e (diff)
downloadrails-3317d6958cf5627ac8db8ce4086639efa5adad43.tar.gz
rails-3317d6958cf5627ac8db8ce4086639efa5adad43.tar.bz2
rails-3317d6958cf5627ac8db8ce4086639efa5adad43.zip
Merge pull request #17886 from mrgilman/refactor-predicate-builder
Refactor `PredicateBuilder` from singleton to instance
Diffstat (limited to 'activerecord/lib/active_record/sanitization.rb')
-rw-r--r--activerecord/lib/active_record/sanitization.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/sanitization.rb b/activerecord/lib/active_record/sanitization.rb
index 88dfddebcc..6c103e331f 100644
--- a/activerecord/lib/active_record/sanitization.rb
+++ b/activerecord/lib/active_record/sanitization.rb
@@ -87,14 +87,15 @@ module ActiveRecord
# { address: Address.new("123 abc st.", "chicago") }
# # => "address_street='123 abc st.' and address_city='chicago'"
def sanitize_sql_hash_for_conditions(attrs, default_table_name = self.table_name)
+ table = Arel::Table.new(table_name).alias(default_table_name)
+ predicate_builder = PredicateBuilder.new(self, table)
ActiveSupport::Deprecation.warn(<<-EOWARN)
sanitize_sql_hash_for_conditions is deprecated, and will be removed in Rails 5.0
EOWARN
- attrs = PredicateBuilder.resolve_column_aliases self, attrs
+ attrs = predicate_builder.resolve_column_aliases(attrs)
attrs = expand_hash_conditions_for_aggregates(attrs)
- table = Arel::Table.new(table_name).alias(default_table_name)
- PredicateBuilder.build_from_hash(self, attrs, table).map { |b|
+ predicate_builder.build_from_hash(attrs).map { |b|
connection.visitor.compile b
}.join(' AND ')
end