# File lib/dm-core/associations/many_to_one.rb, line 178 def lazy_load(source) source_key_different = source_key_different?(source) if (loaded?(source) && !source_key_different) || !valid_source?(source) return end # SEL: load all related resources in the source collection if source.saved? && (collection = source.collection).size > 1 eager_load(collection) end if !loaded?(source) || (source_key_dirty?(source) && source.saved?) set!(source, resource_for(source)) elsif loaded?(source) && source_key_different source_key.set(source, target_key.get!(get!(source))) end end