Module: Mongoid::Persistable::Destroyable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Mongoid::Persistable
- Defined in:
- lib/mongoid/persistable/destroyable.rb
Overview
Defines behavior for persistence operations that destroy documents.
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#destroy(options = nil) ⇒ true | false
Remove the document from the database with callbacks.
-
#destroy!(options = {}) ⇒ true
Remove the document from the database with callbacks.
Instance Method Details
#destroy(options = nil) ⇒ true | false
Remove the document from the database with callbacks.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/mongoid/persistable/destroyable.rb', line 23 def destroy( = nil) raise Errors::ReadonlyDocument.new(self.class) if readonly? self.flagged_for_destroy = true result = run_callbacks(:commit, skip_if: -> { in_transaction? }) do run_callbacks(:destroy) do if catch(:abort) { apply_destroy_dependencies! } delete( || {}).tap do |res| if res && in_transaction? Threaded.add_modified_document(_session, self) end end else false end end end self.flagged_for_destroy = false result end |
#destroy!(options = {}) ⇒ true
Remove the document from the database with callbacks. Raises an error if the document is not destroyed.
59 60 61 |
# File 'lib/mongoid/persistable/destroyable.rb', line 59 def destroy!( = {}) destroy() || raise(Errors::DocumentNotDestroyed.new(_id, self.class)) end |