method
find_target
v8.1.1 -
Show latest stable
- Class:
ActiveRecord::Associations::Association
find_target(async: false)private
No documentation available.
# File activerecord/lib/active_record/associations/association.rb, line 248
def find_target(async: false)
if violates_strict_loading?
Base.strict_loading_violation!(owner: owner.class, reflection: reflection)
end
scope = self.scope
if skip_statement_cache?(scope)
if async
return scope.load_async.then(&:to_a)
else
return scope.to_a
end
end
sc = reflection.association_scope_cache(klass, owner) do |params|
as = AssociationScope.create { params.bind }
target_scope.merge!(as.scope(self))
end
binds = AssociationScope.get_bind_values(owner, reflection.chain)
klass.with_connection do |c|
sc.execute(binds, c, async: async) do |record|
set_inverse_instance(record)
set_strict_loading(record)
end
end
end