aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/predicate_builder.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-12-26 15:33:57 -0700
committerSean Griffin <sean@thoughtbot.com>2014-12-26 15:33:57 -0700
commit3179b4a868c370bf879c15c53b78f25fadec9b41 (patch)
tree5f8fa85b609f182cfbb9c2d4985c93a981208c2a /activerecord/lib/active_record/relation/predicate_builder.rb
parenta60770d3bf3a8aeac16c110f3a7d05a6d52a86d6 (diff)
downloadrails-3179b4a868c370bf879c15c53b78f25fadec9b41.tar.gz
rails-3179b4a868c370bf879c15c53b78f25fadec9b41.tar.bz2
rails-3179b4a868c370bf879c15c53b78f25fadec9b41.zip
Perform casting of single values within the predicate builder
As part of the larger refactoring to remove type casting from Arel, we need to do the casting of values eagerly. The predicate builder is the closest place that knows about the Active Record class, and can therefore have the type information. /cc @mrgilman [Sean Griffin & Melanie Gilman]
Diffstat (limited to 'activerecord/lib/active_record/relation/predicate_builder.rb')
-rw-r--r--activerecord/lib/active_record/relation/predicate_builder.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/relation/predicate_builder.rb b/activerecord/lib/active_record/relation/predicate_builder.rb
index 65c4c11e64..fc2cc11c08 100644
--- a/activerecord/lib/active_record/relation/predicate_builder.rb
+++ b/activerecord/lib/active_record/relation/predicate_builder.rb
@@ -8,15 +8,15 @@ module ActiveRecord
require 'active_record/relation/predicate_builder/range_handler'
require 'active_record/relation/predicate_builder/relation_handler'
- delegate :resolve_column_aliases, to: :table
+ delegate :resolve_column_aliases, :type_cast_for_database, to: :table
def initialize(table)
@table = table
@handlers = []
- register_handler(BasicObject, BasicObjectHandler.new)
- register_handler(Class, ClassHandler.new)
- register_handler(Base, BaseHandler.new)
+ register_handler(BasicObject, BasicObjectHandler.new(self))
+ register_handler(Class, ClassHandler.new(self))
+ register_handler(Base, BaseHandler.new(self))
register_handler(Range, RangeHandler.new)
register_handler(Relation, RelationHandler.new)
register_handler(Array, ArrayHandler.new(self))