Módulo: Mongoid::Attributes::Embedded

Estendido por:
Embedded
Incluído em:
Embedded
Definido em:
lib/mongoid/attributes/embedded.rb

Visão geral

Módulo utilitário para trabalhar com atributos incorporados.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#traversa(atributos, caminho) ➤ Objeto | nada

Buscar um valor incorporado ou subconjunto de atributos por meio de notação de ponto.

Exemplos:

Buscar um valor incorporado por meio de notação de ponto.

Embedded.traverse({ 'name' => { 'en' => 'test' } }, 'name.en')
#=> 'test'

Parâmetros:

  • attributes (Hash)

    Os atributos do documento .

  • caminho (string)

    A string de notação de ponto .

Retorna:

  • (Object | nil)

    Os atributos no caminho fornecido, ou nulo se o caminho não existir.



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/mongoid/attributes/embedded.rb', linha 20

def atravessar(attributes, caminho)
  caminho.dividir('.').cada fazer |chave|
    intervalo se attributes.nada?

    attributes = se attributes.tentar(:key?, chave)
                   attributes[chave]
                 elsif attributes.respond_to?(: cada) && chave.Partida?(/\A\d+\z/)
                   attributes[chave.to_i]
                 end
  end
  attributes
end