Módulo: Mongoid::Association::Macros::ClassMethods

Definido en:
lib/mongoid/association/macros.rb

Overview

Métodos de clase para asociaciones.

Resumen del método de instancia colapsar

Detalles del método de instancia

#belongs_to(nombre, opciones = {}, y bloque) ⇒ Objeto

Agrega una asociación referenciada del Documento secundario a un Documento en otra base de datos o colección.

Ejemplos:

Defina la asociación.


class Game
  include Mongoid::Document
  belongs_to :person
end

class Person
  include Mongoid::Document
  has_one :game
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



148
149
150
# Archivo 'lib/mongoid/association/macros.rb', línea 148

def pertenece_a(Nombre, opciones = {}, &bloque)
  define_association!(__method__, Nombre, opciones, &bloque)
end

#embedded_in(name, options = {}, &block) ⇒ Object

Agrega nuevamente la asociación al documento principal. Esta macro es necesaria para establecer las referencias del hijo al documento principal. Si un niño no define esta asociación, llamar a los métodos de persistencia en el objeto del niño provocará que una guardado falle.

Ejemplos:

Defina la asociación.


class Person
  include Mongoid::Document
  embeds_many :addresses
end

class Address
  include Mongoid::Document
  embedded_in :person
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



80
81
82
# Archivo 'lib/mongoid/association/macros.rb', línea 80

def integrado_en(Nombre, opciones = {}, &bloque)
  define_association!(__method__, Nombre, opciones, &bloque)
end

#embeds_many(name, options = {}, &block) ⇒ Objeto

Agrega la asociación de un documento padre a sus hijos. El nombre de la asociación debe ser una forma pluralizada del nombre de la clase hija.

Ejemplos:

Defina la asociación.


class Person
  include Mongoid::Document
  embeds_many :addresses
end

class Address
  include Mongoid::Document
  embedded_in :person
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



103
104
105
# Archivo 'lib/mongoid/association/macros.rb', línea 103

def insertar_varios(Nombre, opciones = {}, &bloque)
  define_association!(__method__, Nombre, opciones, &bloque)
end

#embeds_one(nombre, opciones = {}, &block) ⇒ objeto

Añade la asociación desde un documento principal a su documento hijo. El nombre de la asociación debe ser una forma singular del nombre de la clase del hijo.

Ejemplos:

Defina la asociación.


class Person
  include Mongoid::Document
  embeds_one :name
end

class Name
  include Mongoid::Document
  embedded_in :person
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



126
127
128
# Archivo 'lib/mongoid/association/macros.rb', línea 126

def embeds_one(Nombre, opciones = {}, &bloque)
  define_association!(__method__, Nombre, opciones, &bloque)
end

#has_and_belongs_to_many(nombre, opciones = {}, &bloque) ⇒ Objeto

Agrega una asociación referenciada de muchos a muchos entre muchos de este documento y muchos de otro documento.

Ejemplos:

Defina la asociación.


class Person
  include Mongoid::Document
  has_and_belongs_to_many :preferences
end

class Preference
  include Mongoid::Document
  has_and_belongs_to_many :people
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



192
193
194
# Archivo 'lib/mongoid/association/macros.rb', línea 192

def has_and_belongs_to_many(Nombre, opciones = {}, &bloque) # rubocop:disable Naming/PredicatePrefix
  define_association!(__method__, Nombre, opciones, &bloque)
end

#has_many(name, options = {}, &block) ⇒ objeto

Agrega una asociación referenciada de un documento principal a muchos documentos en otra base de datos o colección.

Ejemplos:

Defina la asociación.


class Person
  include Mongoid::Document
  has_many :posts
end

class Game
  include Mongoid::Document
  belongs_to :person
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



170
171
172
# Archivo 'lib/mongoid/association/macros.rb', línea 170

def has_many(Nombre, opciones = {}, &bloque) # rubocop:disable Naming/PredicatePrefix
  define_association!(__method__, Nombre, opciones, &bloque)
end

#has_one(name, options = {}, &block) ⇒ Object

Agrega una asociación referenciada del Documento secundario a un Documento en otra base de datos o colección.

Ejemplos:

Defina la asociación.


class Game
  include Mongoid::Document
  belongs_to :person
end

class Person
  include Mongoid::Document
  has_one :game
end

Parámetros:

  • Nombre (Símbolo)

    El nombre de la asociación.

  • opciones (encriptada) (por defecto: {})

    Las opciones de la asociación.

  • &bloque

    Bloque opcional para definir extensiones.



214
215
216
# Archivo 'lib/mongoid/association/macros.rb', línea 214

def tiene_uno(Nombre, opciones = {}, &bloque) # rubocop:disable Naming/PredicatePrefix
  define_association!(__method__, Nombre, opciones, &bloque)
end