Módulo: Mongoid::Serializable

Estendido por:
ActiveSupport::Concern
Incluído em:
Componível
Definido em:
lib/mongoid/serializable.rb

Visão geral

Este módulo fornece o comportamento extra para incluir associações na serialização de JSON e XML.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#serializable_hash(options = nil) ➤ Hash

Obtém o documento como um hash serializável, usado pelo serializador JSON do ActiveModel.

Exemplos:

Obtenha o hash serializável.

document.serializable_hash

Obtenha o hash serializável com opções.

document.serializable_hash(:include => :addresses)

Parâmetros:

  • opções (Hash) (padrão para: nil)

    As opções a serem aprovadas.

Hash de opções (opções):

  • :exceto (Símbolo | string | Array<Símbolo | string>)

    Não inclua estes campo.

  • :include (Símbolo | string | Array<Símbolo | string>)

    Quais associações incluir.

  • :only (Símbolo | string | Array<Símbolo | string>)

    Limite o(s) campo(s) a apenas estes.

  • :methods (Símbolo | string | Array<Símbolo | string>)

    Quais métodos incluir.

Retorna:

  • (Hash)

    O documento, pronto para ser serializado.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Arquivo 'lib/mongoid/serializable.rb', linha 47

def serializable_hash(opções = nada)
  opções ||= {}
  attrs = {}

  nomes = field_names(opções)

  method_names = Array.wrap(opções[:methods]).map fazer |name|
    name.to_s se respond_to?(name)
  end.compactar

  (nomes + method_names).cada fazer |name|
    sem_autobuild fazer
      serialize_attribute(attrs, name, nomes, opções)
    end
  end
  serialize_relations(attrs, opções) se opções[:include]
  attrs
end