method
last_chain_scope
v4.2.9 -
Show latest stable
- Class:
ActiveRecord::Associations::AssociationScope
last_chain_scope(scope, table, reflection, owner, tracker, assoc_klass)private
No documentation available.
# File activerecord/lib/active_record/associations/association_scope.rb, line 98
def last_chain_scope(scope, table, reflection, owner, tracker, assoc_klass)
join_keys = reflection.join_keys(assoc_klass)
key = join_keys.key
foreign_key = join_keys.foreign_key
bind_val = bind scope, table.table_name, key.to_s, owner[foreign_key], tracker
scope = scope.where(table[key].eq(bind_val))
if reflection.type
value = owner.class.base_class.name
bind_val = bind scope, table.table_name, reflection.type, value, tracker
scope = scope.where(table[reflection.type].eq(bind_val))
else
scope
end
end