Module: Mongoid::Persistable::Destroyable
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
ActiveSupport::Concern
|
|
Defined in: | lib/mongoid/persistable/destroyable.rb |
Overview
Defines behavior for persistence operations that destroy documents.
Instance Method Summary
-
#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.
# 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.
# File 'lib/mongoid/persistable/destroyable.rb', line 59
def destroy!( = {}) destroy( ) || raise(Errors::DocumentNotDestroyed.new(_id, self.class)) end