# File lib/mongoid/persistence/insertion.rb, line 21 def prepare(&block) document.tap do |doc| unless validating? && document.invalid?(:create) result = doc.run_callbacks(:save) do doc.run_callbacks(:create) do yield(doc) doc.new_record = false doc.reset_persisted_children and true end end unless result == false doc.move_changes Threaded.clear_options! end end end end