Method: Sequel::Model::Associations::ManyToManyAssociationReflection#default_eager_loader
- Defined in:
- lib/sequel/model/associations.rb
#default_eager_loader(eo) ⇒ Object
The default eager loader used if the user doesn’t override it. Extracted to a method so the code can be shared with the many_through_many plugin.
1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 |
# File 'lib/sequel/model/associations.rb', line 1285 def default_eager_loader(eo) h = eo[:id_map] assign_singular = assign_singular? delete_rn = delete_row_number_column uses_lcks = self[:uses_left_composite_keys] left_key_alias = self[:left_key_alias] name = self[:name] self[:model].eager_load_results(self, eo) do |assoc_record| assoc_record.remove_key!(delete_rn) if delete_rn hash_key = if uses_lcks left_key_alias.map{|k| assoc_record.remove_key!(k)} else assoc_record.remove_key!(left_key_alias) end objects = h[hash_key] if assign_singular objects.each do |object| object.associations[name] ||= assoc_record end else objects.each do |object| object.associations[name].push(assoc_record) end end end end |