aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/finder_methods.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-09-14 09:19:39 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-09-14 09:34:05 +0900
commiteacc97ce3ca4108acc5f1bf6bf5e479a52a5b012 (patch)
tree4516402e17e9a2d30c665a751608399bb5af18f6 /activerecord/lib/active_record/relation/finder_methods.rb
parent5a4cd4fc6fbf1d3036172be5809d467a0395c567 (diff)
downloadrails-eacc97ce3ca4108acc5f1bf6bf5e479a52a5b012.tar.gz
rails-eacc97ce3ca4108acc5f1bf6bf5e479a52a5b012.tar.bz2
rails-eacc97ce3ca4108acc5f1bf6bf5e479a52a5b012.zip
Don't use `quoted_table_name` in `limited_ids_for`
Because `quoted_table_name` doesn't respect table alias. We should use `arel_attribute` for that, so I added `column_name_from_arel_node` to generate column name from an arel node.
Diffstat (limited to 'activerecord/lib/active_record/relation/finder_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index 2aed941916..c92d5a52f4 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -413,7 +413,9 @@ module ActiveRecord
def limited_ids_for(relation)
values = @klass.connection.columns_for_distinct(
- "#{quoted_table_name}.#{quoted_primary_key}", relation.order_values)
+ connection.column_name_from_arel_node(arel_attribute(primary_key)),
+ relation.order_values
+ )
relation = relation.except(:select).select(values).distinct!