# File lib/mongoid/persistence/modification.rb, line 21 def prepare(&block) return false if validating? && document.invalid?(:update) document.run_callbacks(:save) do document.run_callbacks(:update) do yield(document); true end end.tap do |result| unless result == false document.reset_persisted_children document.move_changes Threaded.clear_options! end end end