Class Mongoid::Relations::Many
In: lib/mongoid/relations/many.rb
Parent: Proxy

This is the superclass for all many to one and many to many relation proxies.

Methods

Public Instance methods

Is the relation empty?

@example Is the relation empty??

  person.addresses.blank?

@return [ true, false ] If the relation is empty or not.

@since 2.1.0

Determine if any documents in this relation exist in the database.

@example Are there persisted documents?

  person.posts.exists?

@return [ true, false ] True is persisted documents exist, false if not.

Find the first document given the conditions, or creates a new document with the conditions that were supplied.

@example Find or create.

  person.posts.find_or_create_by(:title => "Testing")

@param [ Hash ] attrs The attributes to search or create with.

@return [ Document ] An existing document or newly created one.

Find the first Document given the conditions, or instantiates a new document with the conditions that were supplied

@example Find or initialize.

  person.posts.find_or_initialize_by(:title => "Test")

@param [ Hash ] attrs The attributes to search or initialize with.

@return [ Document ] An existing document or newly instantiated one.

This proxy can never be nil.

@example Is the proxy nil?

  relation.nil?

@return [ false ] Always false.

@since 2.0.0

Since method_missing is overridden we should override this as well.

@example Does the proxy respond to the method?

  relation.respond_to?(:name)

@param [ Symbol ] name The method name.

@return [ true, false ] If the proxy responds to the method.

@since 2.0.0

This is public access to the relation‘s criteria.

@example Get the scoped relation.

  relation.scoped

@return [ Criteria ] The scoped criteria.

@since 2.1.0

Gets the document as a serializable hash, used by ActiveModel‘s JSON and XML serializers. This override is just to be able to pass the :include and :except options to get associations in the hash.

@example Get the serializable hash.

  relation.serializable_hash

@param [ Hash ] options The options to pass.

@option options [ Symbol ] :include What relations to include @option options [ Symbol ] :only Limit the fields to only these. @option options [ Symbol ] :except Dont include these fields.

@return [ Hash ] The documents, ready to be serialized.

@since 2.0.0.rc.6

[Validate]