Module: Mongoid::Reloadable

Included in:
Composable
Defined in:
build/mongoid-7.3/lib/mongoid/reloadable.rb

Overview

This module handles reloading behavior of documents.

Since:

  • 4.0.0

Instance Method Summary collapse

Instance Method Details

#reloadDocument

Reloads the Document attributes from the database. If the document has not been saved then an error will get raised if the configuration option was set. This can reload root documents or embedded documents.

Examples:

Reload the document.

person.reload

Returns:

  • (Document)

    The document, reloaded.

Raises:

Since:

  • 1.0.0



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'build/mongoid-7.3/lib/mongoid/reloadable.rb', line 23

def reload
  if @atomic_selector
    # Clear atomic_selector cache for sharded clusters. MONGOID-5076
    remove_instance_variable('@atomic_selector')
  end

  reloaded = _reload
  if Mongoid.raise_not_found_error && reloaded.empty?
    raise Errors::DocumentNotFound.new(self.class, _id, _id)
  end
  @attributes = reloaded
  @attributes_before_type_cast = {}
  changed_attributes.clear
  reset_readonly
  apply_defaults
  reload_relations
  run_callbacks(:find) unless _find_callbacks.empty?
  run_callbacks(:initialize) unless _initialize_callbacks.empty?
  self
end