Clear all persistence options from the current thread.
@example Clear the persistence options.
Mongoid::Sessions.clear_persistence_options
@return [ true ] True.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 150 def clear_persistence_options Threaded.clear_persistence_options(self) end
Get the collection for this model from the session. Will check for an overridden collection name from the store_in macro or the collection with a pluralized model name.
@example Get the model's collection.
Model.collection
@return [ Moped::Collection ] The collection.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 164 def collection if opts = persistence_options coll = mongo_session.with(opts)[opts[:collection] || collection_name] clear_persistence_options unless validating_with_query? || _loading_revision? coll else mongo_session[collection_name] end end
Get the name of the collection this model persists to. This will be either the pluralized class name or the option defined in the store_in macro.
@example Get the collection name.
Model.collection_name
@return [ Symbol ] The name of the collection.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 184 def collection_name __collection_name__ end
Get the default database name for this model.
@example Get the default database name.
Model.database_name
@return [ Symbol ] The name of the database.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 196 def database_name __database_name__ end
Get the overridden database name. This either can be overridden by using Model.with or by overriding at the global level via +Mongoid.override_database(:name)+.
@example Get the overridden database name.
Model.database_override
@return [ String, Symbol ] The overridden database name.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 210 def database_override persistence_options.try { |opts| opts[:database] } || Threaded.database_override end
Get the session for this model. This is determined in the following order:
1. Any custom configuration provided by the 'store_in' macro. 2. The 'default' session as provided in the mongoid.yml
@example Get the session.
Model.mongo_session
@return [ Moped::Session ] The default moped session.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 225 def mongo_session session = __session__ session.use(database_override || current_database_name(session)) session end
Get the persistence options from the current thread.
@example Get the persistence options.
Model.persistence_options
@return [ Hash ] The persistence options.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 239 def persistence_options Threaded.persistence_options(self) end
Get the overridden session name. This either can be overridden by using Model.with or by overriding at the global level via +Mongoid.override_session(:name)+.
@example Get the overridden session name.
Model.session_override
@return [ String, Symbol ] The overridden session name.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 253 def session_override persistence_options.try { |opts| opts[:session] } || Threaded.session_override end
Give this model specific custom default storage options.
@example Store this model by default in "artists"
class Band include Mongoid::Document store_in collection: "artists" end
@example Store this model by default in the sharded db.
class Band include Mongoid::Document store_in database: "echo_shard" end
@example Store this model by default in a different session.
class Band include Mongoid::Document store_in session: "secondary" end
@example Store this model with a combination of options.
class Band include Mongoid::Document store_in collection: "artists", database: "secondary" end
@param [ Hash ] options The storage options.
@option options [ String, Symbol ] :collection The collection name. @option options [ String, Symbol ] :database The database name. @option options [ String, Symbol ] :session The session name.
@return [ Class ] The model class.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 292 def store_in(options) Validators::Storage.validate(self, options) self.storage_options ||= {} self.storage_options.merge!(options) end
Tell the next persistance operation to store in a specific collection, database or session.
@example Create a document in a different collection.
Model.with(collection: "secondary").create(name: "test")
@example Create a document in a different database.
Model.with(database: "secondary").create(name: "test")
@example Create a document in a different session.
Model.with(session: "secondary").create(name: "test")
@example Create with a combination of options.
Model.with(session: "sharded", database: "secondary").create
@param [ Hash ] options The storage options.
@option options [ String, Symbol ] :collection The collection name. @option options [ String, Symbol ] :database The database name. @option options [ String, Symbol ] :session The session name.
@return [ Class ] The model class.
@since 3.0.0
# File lib/mongoid/sessions.rb, line 322 def with(options) Threaded.set_persistence_options(self, options) self end
Generated with the Darkfish Rdoc Generator 2.