Clase: Mongoid::Association::Referenced::HasAndBelongsToMany

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Buildable, Mongoid::Association::Relatable
Definido en:
lib/mongoid/association/referenced/has_and_belongs_to_many.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

Overview

La asociación de tipo HasAndBelongsToMany.

Definido bajo Namespace

Modules: Construible clase: Binding, Eager, Proxy

Resumen de constantes colapsar

ASSOCIATION_OPTIONS =

Las opciones disponibles para este tipo de asociación, además de las comunes.

Devuelve:

  • (arreglo<Symbol>)

    Las opciones válidas extra.

%i[
  después_de_agregar
  after_removal
  autosave
  before_add
  antes_de_remover
  counter_cache
  dependiente
  foreign_key
  index
  orden
  clave_primaria
  clave_primaria_inversa
  clave foránea inversa
  Alcance
].freeze
VALID_OPTIONS =

La lista completa de opciones válidas para esta asociación, incluidas las compartidas.

Devuelve:

  • (arreglo<Symbol>)

    Las opciones válidas.

(ASSOCIATION_OPTIONS + OPCIONES_COMPARTIDAS).freeze
FOREIGN_KEY_FIELD_TYPE =

El tipo del campo que contiene la clave foránea.

Devuelve:

  • (arreglo)
Arreglo
FOREIGN_KEY_SUFFIX =

El sufijo por defecto de clave foránea.

Devuelve:

  • (string)

    '_ids'

'_ids'

Constantes incluidas de Mongoid::Association::Relatable

Mongoid::Association::Relatable::PRIMARY_KEY_DEFAULT, Mongoid::Association::Relatable::SHARED_OPTIONS

Resumen del atributo de la instancia

Atributos incluidos desde Mongoid::Association::Relatable

#name, #options, #owner_class, #parent_inclusions

Resumen del método de instancia colapsar

Métodos incluidos de Buildable

compilar

Métodos incluidos de Mongoid::Association::Relatable

#==, #counter_cache_column_name, #create_relation, #destructive?, #extension, #foreign_key_check, #foreign_key_setter, #get_callbacks, #in_to?, #initialize, #inverse, #inverse_association, #inverse_class, #inverse_class_name, #inverse_setter, #inverse_type, #inverse_type_setter, #inverses, #key, #many?, #one?, #relation_class, #relation_class_name, #setter, #type_setter, #validate?

Métodos incluidos de Opciones

#cómo, #autocompletando?, #autoguardar, #retrollamadas_en_cascada?, #contadors_cacheados?, #cíclico?, #dependiente, #índice?, #inverso_de, #orden, #polimórfico?, #clave_primaria, #almacenar_como, #campo_toque, #tocable?, #tipo

Métodos incluidos de Constrainable

#convert_to_foreign_key

Detalles del método de instancia

#Se puede vincular?(doc) ⇒ verdadero | falso

Si intentar vincular un objeto mediante esta asociación debe generar un error.

Parámetros:

  • doc (documento)

    El documento que debe ser encuadernado.

Devuelve:

  • (true | false)

    Si el documento se puede encuadernar.



143
144
145
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 143

def ¿se puede vincular?(doc)
  forced_nil_inverse? || (!!inversa && doc.Campos.claves.incluir?(foreign_key))
end

#criteria(base, id_list = nil) ⇒ Mongoid::Criteria

Los criterios utilizados para consultar esta asociación.

Devuelve:



117
118
119
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 117

def criterios(base, lista de IDs = nulo)
  query_criteria(lista de IDs || base.enviar(foreign_key))
end

#¿integrado?false

¿Este tipo de asociación está incrustado?

Devuelve:

  • (false)

    Siempre falso.



71
72
73
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 71

def ¿Incorporado?
  false
end

#forced_nil_inverse?true | false

¿Solo se guardan los ids en este lado de la asociación?

Devuelve:

  • (true | false)

    Si esta asociación tiene una inversa forzada nula.



85
86
87
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 85

def forced_nil_inverse?
  @forced_nil_inverse ||= @options.key?(:inverso_de) && !@options[:inverso_de]
end

#foreign_keyString

Obtenga el campo de clave foránea para guardar la referencia de asociación.

Devuelve:

  • (string)

    El campo clave externa para guardar la referencia de la asociación.



106
107
108
109
110
111
112
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 106

def foreign_key
  @foreign_key ||= si @options[:foreign_key]
                     @options[:foreign_key].to_s
                   else
                     default_foreign_key_field
                   end
end

#inverse_foreign_keyString

Obtener el campo de clave foránea en la inversa.

Devuelve:

  • (string)

    El campo de clave externa para guardar la referencia de asociación en el lado inverso.



125
126
127
128
129
130
131
132
133
134
135
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 125

def clave foránea inversa
  si @options.key?(:clave_externa_inverse)
    @options[:clave_externa_inverse]
  elsif @options.key?(:inverso_de)
    inverse_of ? "#{inverse_of.to_s.singularize}#{FOREIGN_KEY_SUFFIX}" : nulo
  elsif inv = asociación inversa&.foreign_key
    inv
  else
    "#{inverse_class_name.demodulize.underscore}#{FOREIGN_KEY_SUFFIX}"
  end
end

#inverse_foreign_key_setterString

Consiga el setter de clave externa en el inverso.

Devuelve:

  • (string)

    El configurador de clave foránea para guardar la referencia de asociación en el lado inverso.



151
152
153
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 151

def inverso_establecedor_de_claves_externas
  @inverse_foreign_key_setter ||= "#{inverse_foreign_key}=" si clave foránea inversa
end

#nested_builder(atributos, opciones) ⇒ Asociación::Anidada::Única

El objeto builder anidado.

Parámetros:

  • atributos (encriptada)

    Los atributos a utilizar para compilar el objeto de asociación.

  • opciones (encriptada)

    Las opciones para la asociación.

Devuelve:



161
162
163
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 161

def nested_builder(atributos, opciones)
  Anidado::Muchos.Nuevo(sí mismo, atributos, opciones)
end

#ruta(documento) ⇒ Raíz

Obtén la calculadora de rutas para el documento suministrado.

Ejemplos:

Obtén la calculadora de rutas.

association.path(document)

Parámetros:

  • Documento (documento)

    El documento sobre el que calcular.

Devuelve:

  • (Root)

    El calculador de rutas atómicas raíz.



173
174
175
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 173

def ruta(Documento)
  Mongoid::Atómico::Rutas::Root (raíz).Nuevo(Documento)
end

#relaciónAssociation::HasAndBelongsToMany::Proxy

Obtenga la clase proxy de asociación para este tipo de asociación.

Devuelve:

  • (Assocation::HasAndBelongsToMany::Proxy)

    La clase proxy.



99
100
101
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 99

def relación
  Proxy
end

#relation_complementsArray<Mongoid::Association::Relatable>

La lista de complementos de asociaciones.

Devuelve:



56
57
58
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 56

def relation_complements
  @relation_complements ||= [ sí mismo.clase ].freeze
end

#scopeProc | Symbol | nil

Obtén el alcance que se aplicará al consultar la asociación.

Devuelve:

  • (Proc | Symbol | nil)

    El alcance de la asociación, si lo hubiera.



180
181
182
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 180

def Alcance
  @options[:alcance]
end

#configurar!self

Configura los métodos de instancia, campos, etc. en la clase propietaria de la asociación.

Devuelve:

  • (self)


63
64
65
66
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 63

def setup!
  setup_instance_methods!
  sí mismo
end

#stores_foreign_key?true

¿Este tipo de asociación almacena la clave externa?

Devuelve:

  • (cierto)

    Siempre verdadero.



92
93
94
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 92

def ¿stores_foreign_key?
  true
end

#validation_defaultfalse

El valor por defecto para la validación del objeto de asociación.

Devuelve:

  • (false)

    Siempre falso.



78
79
80
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 78

def validation_default
  true
end