From cdc112e3ea8bd7b5ba787e64f3f8ee3da3e5a64f Mon Sep 17 00:00:00 2001 From: Matthew Draper Date: Thu, 4 Feb 2016 08:02:45 +1030 Subject: Defer Arel attribute lookup to the model class This still isn't as separated as I'd like, but it at least moves most of the burden of alias mapping in one place. --- .../lib/active_record/relation/predicate_builder/relation_handler.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activerecord/lib/active_record/relation/predicate_builder') diff --git a/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb index 063150958a..a43478f815 100644 --- a/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb +++ b/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb @@ -3,7 +3,7 @@ module ActiveRecord class RelationHandler # :nodoc: def call(attribute, value) if value.select_values.empty? - value = value.select(value.klass.arel_table[value.klass.primary_key]) + value = value.select(value.klass.arel_attribute(value.klass.primary_key, value.klass.arel_table)) end attribute.in(value.arel) -- cgit v1.2.3 From 5952861948a0918b1955202c1ea19589634537dc Mon Sep 17 00:00:00 2001 From: Matthew Draper Date: Thu, 4 Feb 2016 09:14:05 +1030 Subject: Extract a Relation#arel_attribute --- .../lib/active_record/relation/predicate_builder/relation_handler.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activerecord/lib/active_record/relation/predicate_builder') diff --git a/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb index a43478f815..8a910a82fe 100644 --- a/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb +++ b/activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb @@ -3,7 +3,7 @@ module ActiveRecord class RelationHandler # :nodoc: def call(attribute, value) if value.select_values.empty? - value = value.select(value.klass.arel_attribute(value.klass.primary_key, value.klass.arel_table)) + value = value.select(value.arel_attribute(value.klass.primary_key)) end attribute.in(value.arel) -- cgit v1.2.3