module ROM::SQL::Associations::Core

Core SQL association API

@api private

Public Instance Methods

preload(target, loaded) click to toggle source

@api private

# File lib/rom/sql/associations/core.rb, line 11
def preload(target, loaded)
  source_key, target_key = join_keys.flatten(1)

  target_pks = loaded.pluck(source_key.key)
  target_pks.uniq!

  target.where(target_key => target_pks)
end
wrapped() click to toggle source

@api private

# File lib/rom/sql/associations/core.rb, line 21
def wrapped
  new_target = view ? target.send(view) : target
  to_wrap = self.class.allocate
  to_wrap.send(:initialize, definition, **options, target: new_target)
  to_wrap.wrap
end