Classe: Mongoid::Association::Referenced::HasAndBelongsToMany

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Buildable, Mongoid::Association::Relatable
Definido em:
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

Visão geral

A associação de tipo HasAndBelongsToMany.

Definido sob namespace

Módulos: Construível Classes: Vinculativo, ansioso, 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.

[
    :after_add,
    :after_remove,
    :autosave,
    :before_add,
    :before_remove,
    :counter_cache,
    :dependen,
    :foreign_key,
    :index,
    :order,
    :primary_key,
    :inverse_primary_key,
    :inverse_foreign_key,
    :scope,
].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_FIELD_TYPE =

O tipo do campo que contém a chave estrangeira.

Retorna:

  • (Array)
Array
FOREIGN_KEY_SUFFIX =

O sufixo de chave estrangeira padrão.

Retorna:

  • (string)

    ‘_ids’

'_ids'.congelar

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, #parent_inclusions

Recolhimento do Resumo do método de instância

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, #indexado?, #inverse_of, #order, #polymorphic?., #type

Métodos incluídos no Constrainable

#convert_to_foreign_key

Detalhes do método de instância

#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.



136
137
138
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 136

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

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

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

Retorna:



110
111
112
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 110

def critério(base, id_list = nada)
  query_criteria(id_list || base.enviar(foreign_key))
end

#incorporado?false

Esse tipo de associação está incorporado?

Retorna:

  • (falso)

    Sempre falso.



73
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 73

def incorporado?; false; end

#force_nil_inverse?verdadeiro | false

Os IDs são salvos apenas neste lado da associação?

Retorna:

  • (verdadeiro | falso)

    Se esta associação tem um inverso nulo forçado.



83
84
85
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 83

def forced_nil_inverse?
  @forced_nil_inverse ||= @opções.chave?(:inverse_of) && !@opções[:inverse_of]
end

#foreign_key ➤ string

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

Retorna:

  • (string)

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



102
103
104
105
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 102

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

#inverse_foreign_key ➤ string

Obtenha o campo de chave estrangeira no inverso.

Retorna:

  • (string)

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



118
119
120
121
122
123
124
125
126
127
128
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 118

def inverse_foreign_key
  se @opções.chave?(:inverse_foreign_key)
    @opções[:inverse_foreign_key]
  elsif @opções.chave?(:inverse_of)
    inverse_of ? "#{inverse_of.to_s.singularize}#{FOREIGN_KEY_SUFFIX}" : nada
  elsif inv = inverse_association&.foreign_key
    inv
  mais
    "#{inverse_class_name.demofulize.sublinhado}#{FOREIGN_KEY_SUFFIX}"
  end
end

#inverse_foreign_key_setterString

Obtenha o setter de chave estrangeira no inverso.

Retorna:

  • (string)

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



144
145
146
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 144

def inverse_foreign_key_setter
  @inverse_foreign_key_setter ||= "#{inverse_foreign_key}=" se inverse_foreign_key
end

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

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:



154
155
156
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 154

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.

association.path(document)

Parâmetros:

  • documento (Documento)

    O documento para calcular.

Retorna:

  • (Raiz)

    A Calculadora de Caminho Atômico Raiz.



166
167
168
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 166

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

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

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

Retorna:

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

    A classe proxy.



95
96
97
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 95

def relação
  Proxy
end

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

A lista de complementos de associação.

Retorna:



58
59
60
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 58

def relação_complementos
  @relation_complements ||= [ auto.classe ].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.



173
174
175
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 173

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)


65
66
67
68
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 65

def configuração!
  setup_instance_methods!
  auto
end

#stores_foreign_key?verdadeiro

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

Retorna:

  • (verdadeiro)

    Sempre verdadeiro.



90
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 90

def stores_foreign_key?; true; end

#validation_defaultfalse

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

Retorna:

  • (falso)

    Sempre falso.



78
# Arquivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', linha 78

def validation_default; true; end