Classe: Mongoid::Association::Referenced::HasMany

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Buildable, WithPolymorphicCriteria, Mongoid::Association::Relatable
Definido em:
lib/mongoid/association/referenced/has_many.rb,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/referenced/has_many/binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb

Visão geral

A associação has_many.

Definido sob namespace

Módulos: Construível Classes: Vinculativo, Ávido, Enumerável, Proxy

Colapsode resumo constante

ASSOCIATION_OPTIONS =

As opções disponíveis para este tipo de associação, além das comuns.

Retorna:

  • (Array<Símbolo><Symbol>)

    As opções extras válidas.

%i[
  after_add
  after_remove
  como
  autosave
  before_add
  before_remove
  dependente
  foreign_key
  order
  primary_key
  escopo
].congelar
VALID_OPTIONS =

A lista completa de opções válidas para esta associação, incluindo as compartilhadas.

Retorna:

  • (Array<Símbolo><Symbol>)

    As opções válidas.

(ASSOCIATION_OPTIONS + SHARED_OPTIONS).congelar
FOREIGN_KEY_SUFFIX =

O sufixo de chave estrangeira padrão.

Retorna:

  • (string)

    '_id'

'_id'

Constantes incluídas do Mongoid::Association::Relatable

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

Resumo do atributo de instância

Atributos incluídos do Mongoid::Association::Relatable

#name, #options, #wner_class, #parent_inclusions

Recolhimento do Resumo do método de instância

Métodos incluídos de WithPolymorphicCriteria

#with_polymorphic_criterion

Métodos incluídos do Buildable

#build

Métodos incluídos do 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 incluídos em Opções

#as, #autoconstrução?, #autosave, #cascadeing_callbacks?, #counter_cached? , #cíclica?, #depende, #forced_nil_inverse?, #indexado?,...

Métodos incluídos no Constrainable

#convert_to_foreign_key

Detalhes do método de instância

#add_polymorphic_criterion(criteria, object_class) ➤ Mongoid::Criteria

Obsoleto.

em 9.0.x

Adicione critérios de query polimórficos a um objeto Criteria , se essa associação for polimórfica.

Ao que parece, este método é um artefato que sobrou de uma refatoração que o renomeou como with_polymorphic_criterion e o tornou privado. Independentemente disso, esse método não é referenciado em nenhum outro lugar e é improvável que seja útil para clientes externos. Devemos removê-lo.

Parâmetros:

  • critério (Mongoid::Criteria)

    O objeto de critérios ao qual adicionar.

  • object_class (Classe)

    A classe de objeto .

Retorna:



148
149
150
151
152
153
154
# File 'lib/mongoid/association/referenced/has_many.rb', linha 148

def add_polymorphic_criterion(critério, object_class)
  se polimórfico?
    critério.ONDE(type => object_class.name)
  mais
    critério
  end
end

#vinculável?(doc) ➤ verdadeiro | false

Se a tentativa de vincular um objeto usando essa associação deve gerar um erro.

Parâmetros:

  • doc (Documento)

    O documento a ser vinculado.

Retorna:

  • (verdadeiro | falso)

    Se o documento pode ser vinculado.



170
171
172
# File 'lib/mongoid/association/referenced/has_many.rb', linha 170

def vinculável?(doc)
  forced_nil_inverse? || (!!inverso && doc.Campos.keys.incluir?(foreign_key))
end

#critério(base) ➤ Mongoide::Criteria

Os critérios utilizados para consultar esta associação.

Retorna:



122
123
124
# File 'lib/mongoid/association/referenced/has_many.rb', linha 122

def critério(base)
  query_criteria(base.enviar(primary_key), base)
end

#incorporado?false

Esse tipo de associação está incorporado?

Retorna:

  • (falso)

    Sempre falso.



94
95
96
# File 'lib/mongoid/association/referenced/has_many.rb', linha 94

def incorporado?
  false
end

#foreign_key ➤ string

Obtenha o campo de chave estrangeira no inverso para salvar a referência de associação.

Retorna:

  • (string)

    O campo de chave estrangeira no inverso para salvar a referência de associação.



83
84
85
86
87
88
89
# File 'lib/mongoid/association/referenced/has_many.rb', linha 83

def foreign_key
  @foreign_key ||= se @opções[:foreign_key]
                     @opções[:foreign_key].to_s
                   mais
                     default_foreign_key_field
                   end
end

#nested_builder(attributes, opções) ➤Association ::Nested::Many

O objeto de construtor aninhado.

Parâmetros:

  • attributes (Hash)

    Os atributos a serem utilizados para construir o objeto de associação.

  • opções (Hash)

    As opções para a associação.

Retorna:



180
181
182
# File 'lib/mongoid/association/referenced/has_many.rb', linha 180

def nested_builder(attributes, opções)
  Aninhado::Muitos.Novo(auto, attributes, opções)
end

#caminho(documento) ➤ Raiz

Obtenha a calcula de caminho para o documento fornecido .

Exemplos:

Obtenha a calcula de caminho.

Proxy.path(document)

Parâmetros:

  • documento (Documento)

    O documento para calcular.

Retorna:

  • (Raiz)

    A Calculadora de Caminho Atômico Raiz.



192
193
194
# File 'lib/mongoid/association/referenced/has_many.rb', linha 192

def caminho(documento)
  Mongoid::Atômico::Caminhos::Raiz.Novo(documento)
end

#polimórfico?verdadeiro | false

Essa associação é polimórfica?

Retorna:

  • (verdadeiro | falso)

    Se esta associação é polimórfica.



160
161
162
# File 'lib/mongoid/association/referenced/has_many.rb', linha 160

def polimórfico?
  @polymorphic ||= !!como
end

#relação ➤Association::HasMany::Proxy

Obtenha a classe de proxy de associação para este tipo de associação.

Retorna:

  • (Associação::HasMany::Proxy)

    A classe proxy.



115
116
117
# File 'lib/mongoid/association/referenced/has_many.rb', linha 115

def relação
  Proxy
end

#concern_complements ➤ Array<Mongoid::Association::Relatable>

A lista de complementos de associação.

Retorna:



51
52
53
# File 'lib/mongoid/association/referenced/has_many.rb', linha 51

def relação_complementos
  @relation_complements ||= [ Referenciado::Pertence a ].congelar
end

#scopeProc | Symbol | nil

Obtenha o escopo a ser aplicado ao consultar a associação.

Retorna:

  • (Proc | Symbol | nil)

    O escopo da associação, se houver.



199
200
201
# File 'lib/mongoid/association/referenced/has_many.rb', linha 199

def escopo
  @opções[:scope]
end

#configuração!auto

Configure os métodos de instância, campos, etc. na classe possuidora da associação.

Retorna:

  • (self)


58
59
60
61
# File 'lib/mongoid/association/referenced/has_many.rb', linha 58

def configuração!
  setup_instance_methods!
  auto
end

#setup_instance_methods!auto

Configure os métodos de instância na classe que tem este tipo de associação.

Retorna:

  • (self)


66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/mongoid/association/referenced/has_many.rb', linha 66

def setup_instance_methods!
  define_getter!
  define_ids_getter!
  define_setter!
  define_ids_setter!
  define_existence_check!
  define_autosaver!
  polimorfo!
  define_dependency!
  @ Owner_class.validates_associated(name) se validar?
  auto
end

#stores_foreign_key?verdadeiro

Esse tipo de associação armazena a chave estrangeira?

Retorna:

  • (verdadeiro)

    Sempre verdadeiro.



108
109
110
# File 'lib/mongoid/association/referenced/has_many.rb', linha 108

def stores_foreign_key?
  false
end

#tipostring | nada

Observação:

Relevante apenas para associações polimórficas.

O tipo desta associação se for polimórfico.

Retorna:

  • (string | nil)

    O campo de tipo.



131
132
133
# File 'lib/mongoid/association/referenced/has_many.rb', linha 131

def type
  @type ||= "#{as}_type" se polimórfico?
end

#validation_defaulttrue

O padrão para validação do objeto de associação.

Retorna:

  • (verdadeiro)

    Sempre verdadeiro.



101
102
103
# File 'lib/mongoid/association/referenced/has_many.rb', linha 101

def validation_default
  true
end