From 3179b4a868c370bf879c15c53b78f25fadec9b41 Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Fri, 26 Dec 2014 15:33:57 -0700 Subject: 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] --- .../active_record/relation/predicate_builder/base_handler.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'activerecord/lib/active_record/relation/predicate_builder/base_handler.rb') diff --git a/activerecord/lib/active_record/relation/predicate_builder/base_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/base_handler.rb index d50ea519f9..6fa5b16f73 100644 --- a/activerecord/lib/active_record/relation/predicate_builder/base_handler.rb +++ b/activerecord/lib/active_record/relation/predicate_builder/base_handler.rb @@ -1,9 +1,17 @@ module ActiveRecord class PredicateBuilder class BaseHandler # :nodoc: + def initialize(predicate_builder) + @predicate_builder = predicate_builder + end + def call(attribute, value) - attribute.eq(value.id) + predicate_builder.build(attribute, value.id) end + + protected + + attr_reader :predicate_builder end end end -- cgit v1.2.3