Methods
Attributes
[R] | association_key_name | |
[R] | scope |
Class Public methods
new(scope, association_key_name)
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 10
def initialize(scope, association_key_name)
@scope = scope
@association_key_name = association_key_name
end
🔎 See on GitHub
Instance Public methods
eql?(other)
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 15
def eql?(other)
association_key_name == other.association_key_name &&
scope.table_name == other.scope.table_name &&
scope.values_for_queries == other.scope.values_for_queries
end
🔎 See on GitHub
hash()
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 21
def hash
[association_key_name, scope.table_name, scope.values_for_queries].hash
end
🔎 See on GitHub
load_records_for_keys(keys, &block)
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 38
def load_records_for_keys(keys, &block)
scope.where(association_key_name => keys).load(&block)
end
🔎 See on GitHub
load_records_in_batch(loaders)
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 29
def load_records_in_batch(loaders)
raw_records = records_for(loaders)
loaders.each do |loader|
loader.load_records(raw_records)
loader.run
end
end
🔎 See on GitHub
records_for(loaders)
📝 Source code
# File activerecord/lib/active_record/associations/preloader/association.rb, line 25
def records_for(loaders)
LoaderRecords.new(loaders, self).records
end
🔎 See on GitHub