def inject_lazy_loader(attribute)
      # bail if there is already a value
      return false if attribute_loaded?(attribute)
      # the accessor methods to modify
      reader, writer = self.class.property(attribute).accessors
      # The singleton attribute reader method loads the reference once and thenceforth calls the
      # standard reader.
      instance_eval "def #{reader}; load_reference(:#{attribute}); end"
      # The singleton attribute writer method removes the lazy loader once and thenceforth calls
      # the standard writer.
      instance_eval "def #{writer}(value); remove_lazy_loader(:#{attribute}); super; end"
      true
    end
def inject_lazy_loader(attribute)
      # bail if there is already a value
      return false if attribute_loaded?(attribute)
      # the accessor methods to modify
      reader, writer = self.class.property(attribute).accessors
      # The singleton attribute reader method loads the reference once and thenceforth calls the
      # standard reader.
      instance_eval "def #{reader}; load_reference(:#{attribute}); end"
      # The singleton attribute writer method removes the lazy loader once and thenceforth calls
      # the standard writer.
      instance_eval "def #{writer}(value); remove_lazy_loader(:#{attribute}); super; end"
      true
    end
Adds this Persistable lazy loader to the given attribute unless the attribute already holds a
 fetched reference.

 @param [Symbol] attribute the attribute to mod
 @return [Boolean] whether a loader was added to the attribute