Methods

Class/Module Index [+]

Quicksearch

Mongoid::Persistence::Modification

Contains common logic for modification operations.

Public Instance Methods

prepare(&block) click to toggle source

Wrap all the common modification logic for both root and embedded documents and then yield to the block.

@example Execute common modification logic.

prepare do |doc|
  collection.update({ :_id => 1 }, { :field => "value })
end

@param [ Proc ] block The block to call.

@return [ true, false ] If the save passed or not.

@since 2.1.0

# File lib/mongoid/persistence/modification.rb, line 20
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

[Validate]

Generated with the Darkfish Rdoc Generator 2.