method
construct_limited_ids_condition
v4.0.2 -
Show latest stable
- Class:
ActiveRecord::FinderMethods
construct_limited_ids_condition(relation)protected
No documentation available.
# File activerecord/lib/active_record/relation/finder_methods.rb, line 246
def construct_limited_ids_condition(relation)
orders = relation.order_values.map { |val| val.presence }.compact
values = @klass.connection.columns_for_distinct("#{quoted_table_name}.#{quoted_primary_key}", orders)
relation = relation.dup.select(values).distinct!
id_rows = @klass.connection.select_all(relation.arel, 'SQL', relation.bind_values)
ids_array = id_rows.map {|row| row[primary_key]}
ids_array.empty? ? raise(ThrowResult) : table[primary_key].in(ids_array)
end