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