module ActiveFedora::AutosaveAssociation

def save_belongs_to_association(reflection)

In addition, it will destroy the association if it was marked for destruction.

Saves the associated record if it's new or :autosave is enabled.
def save_belongs_to_association(reflection)
  association = association_instance_get(reflection.name)
  record      = association && association.load_target
  if record && !record.destroyed?
    autosave = reflection.options[:autosave]
    if autosave && record.marked_for_destruction?
      record.destroy
    elsif autosave != false
      saved = record.save(:validate => !autosave) if record.new_record? || (autosave && record.changed_for_autosave?)
      if association.updated?
        self[reflection.name.to_s + "_id"] = record.id #TODO use primary_key here
        association.loaded!
      end
      saved if autosave
    end
  end
end