method
last_scope_chain
v7.0.0 -
Show latest stable
- Class:
ActiveRecord::Associations::DisableJoinsAssociationScope
last_scope_chain(reverse_chain, owner)private
No documentation available.
# File activerecord/lib/active_record/associations/disable_joins_association_scope.rb, line 18
def last_scope_chain(reverse_chain, owner)
first_item = reverse_chain.shift
first_scope = [first_item, false, [owner._read_attribute(first_item.join_foreign_key)]]
reverse_chain.inject(first_scope) do |(reflection, ordered, join_ids), next_reflection|
key = reflection.join_primary_key
records = add_constraints(reflection, key, join_ids, owner, ordered)
foreign_key = next_reflection.join_foreign_key
record_ids = records.pluck(foreign_key)
records_ordered = records && records.order_values.any?
[next_reflection, records_ordered, record_ids]
end
end