method
initial_count_for
v4.2.1 -
Show latest stable
- Class:
ActiveRecord::Associations::AliasTracker
initial_count_for(connection, name, table_joins)public
No documentation available.
# File activerecord/lib/active_record/associations/alias_tracker.rb, line 25
def self.initial_count_for(connection, name, table_joins)
# quoted_name should be downcased as some database adapters (Oracle) return quoted name in uppercase
quoted_name = connection.quote_table_name(name).downcase
counts = table_joins.map do |join|
if join.is_a?(Arel::Nodes::StringJoin)
# Table names + table aliases
join.left.downcase.scan(
/join(?:\s+\w+)?\s+(\S+\s+)?#{quoted_name}\son/
).size
elsif join.respond_to? :left
join.left.table_name == name ? 1 : 0
else
# this branch is reached by two tests:
#
# activerecord/test/cases/associations/cascaded_eager_loading_test.rb:37
# with :posts
#
# activerecord/test/cases/associations/eager_test.rb:1133
# with :comments
#
0
end
end
counts.sum
end