Module: Mongoid::Persistence
- Extended by:
- ActiveSupport::Concern
- Includes:
- Atomic
- Included in:
- Components
- Defined in:
- lib/mongoid/persistence.rb,
lib/mongoid/persistence/atomic.rb,
lib/mongoid/persistence/insert.rb,
lib/mongoid/persistence/remove.rb,
lib/mongoid/persistence/update.rb,
lib/mongoid/persistence/command.rb,
lib/mongoid/persistence/atomic/inc.rb,
lib/mongoid/persistence/remove_all.rb,
lib/mongoid/persistence/atomic/push.rb,
lib/mongoid/persistence/atomic/pull_all.rb,
lib/mongoid/persistence/insert_embedded.rb,
lib/mongoid/persistence/remove_embedded.rb,
lib/mongoid/persistence/atomic/operation.rb,
lib/mongoid/persistence/atomic/add_to_set.rb
Overview
:nodoc:
Defined Under Namespace
Modules: Atomic, ClassMethods Classes: Command, Insert, InsertEmbedded, Remove, RemoveAll, RemoveEmbedded, Update
Instance Method Summary collapse
-
#destroy(options = {}) ⇒ true, false
Remove the document from the datbase with callbacks.
-
#insert(options = {}) ⇒ Document
Insert a new document into the database.
-
#remove(options = {}) ⇒ TrueClass
(also: #delete)
Remove the document from the datbase.
-
#save!(options = {}) ⇒ true, false
Save the document - will perform an insert if the document is new, and update if not.
-
#update(options = {}) ⇒ true, false
Update the document in the datbase.
-
#update_attribute(name, value) ⇒ true, false
Update a single attribute and persist the entire document.
-
#update_attributes(attributes = {}) ⇒ true, false
Update the document attributes in the datbase.
-
#update_attributes!(attributes = {}) ⇒ true, false
Update the document attributes in the database and raise an error if validation failed.
-
#upsert(options = {}) ⇒ true, false
(also: #save)
Upsert the document - will perform an insert if the document is new, and update if not.
Methods included from Atomic
#add_to_set, #inc, #pull_all, #push
Instance Method Details
#destroy(options = {}) ⇒ true, false
Remove the document from the datbase with callbacks.
33 34 35 |
# File 'lib/mongoid/persistence.rb', line 33 def destroy( = {}) run_callbacks(:destroy) { remove() } end |
#insert(options = {}) ⇒ Document
Insert a new document into the database. Will return the document itself whether or not the save was successful.
46 47 48 |
# File 'lib/mongoid/persistence.rb', line 46 def insert( = {}) Insert.new(self, ).persist end |
#remove(options = {}) ⇒ TrueClass Also known as: delete
Remove the document from the datbase.
58 59 60 61 62 63 64 |
# File 'lib/mongoid/persistence.rb', line 58 def remove( = {}) if Remove.new(self, ).persist attributes.freeze self.destroyed = true cascade! end; true end |
#save!(options = {}) ⇒ true, false
Save the document - will perform an insert if the document is new, and update if not. If a validation error occurs an error will get raised.
76 77 78 |
# File 'lib/mongoid/persistence.rb', line 76 def save!( = {}) self.class.fail_validate!(self) unless upsert(); true end |
#update(options = {}) ⇒ true, false
Update the document in the datbase.
88 89 90 |
# File 'lib/mongoid/persistence.rb', line 88 def update( = {}) Update.new(self, ).persist end |
#update_attribute(name, value) ⇒ true, false
Update a single attribute and persist the entire document. This skips validation but fires the callbacks.
104 105 106 |
# File 'lib/mongoid/persistence.rb', line 104 def update_attribute(name, value) write_attribute(name, value) ? save(:validate => false) : true end |
#update_attributes(attributes = {}) ⇒ true, false
Update the document attributes in the datbase.
116 117 118 |
# File 'lib/mongoid/persistence.rb', line 116 def update_attributes(attributes = {}) write_attributes(attributes); save end |
#update_attributes!(attributes = {}) ⇒ true, false
Update the document attributes in the database and raise an error if validation failed.
131 132 133 134 135 |
# File 'lib/mongoid/persistence.rb', line 131 def update_attributes!(attributes = {}) update_attributes(attributes).tap do |result| self.class.fail_validate!(self) unless result end end |
#upsert(options = {}) ⇒ true, false Also known as: save
Upsert the document - will perform an insert if the document is new, and update if not.
146 147 148 149 150 151 152 |
# File 'lib/mongoid/persistence.rb', line 146 def upsert( = {}) if new_record? insert().persisted? else update() end end |