Módulo: Mongoid::Loadable

Incluído em:
Mongoid
Definido em:
lib/mongoid/loadable.rb

Visão geral

Define como o Mongoid pode carregar automaticamente todos os modelos definidos.

Colapsode resumo constante

DEFAULT_MODEL_PATHS =

A lista padrão de caminhos onde as classes de modelo devem ser procuradas. Se o Rails estiver presente, os caminhos "app/models" serão usados. (Consulte #model_paths.)

%w( ./app/models ./lib/models ).congelar

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#load_model(file) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Um método de conveniência para carregar o arquivo de um modelo. Se o método 'require_dependency' do Rails existir, ele será usado; caso contrário, "exigir" será usado.

Exemplos:

Carregue o modelo.

Mongoid.load_model("/mongoid/behavior")

Parâmetros:

  • file (string)

    O nome do arquivo base.



50
51
52
53
54
55
56
# Arquivo 'lib/mongoid/loadable.rb', linha 50

def load_model(file)
  se definido?(require_dependency)
    require_dependency(file)
  mais
    exigir(file)
  end
end

#load_models(paths = model_paths) ➤ Objeto

Pesquise uma lista de caminhos de modelo para obter cada modelo e exigi-lo, para que a indexação e a herança funcionem no desenvolvimento e na produção com os mesmos resultados.

Exemplos:

Carregue todos os modelos de aplicação a partir de caminhos de modelo padrão.

Mongoid.load_models

Carregue todos os modelos de aplicação de um conjunto não padrão de caminhos.

Mongoid.load_models(%w( ./models ./admin/models ))

Parâmetros:

  • caminhos (Array) (padrão para: model_paths)

    A lista de caminhos que devem ser procurados para arquivos de modelo. Devem ser caminhos absolutos ou relativos ao diretório de trabalho atual.



26
27
28
29
30
31
32
33
34
35
36
37
38
# Arquivo 'lib/mongoid/loadable.rb', linha 26

def load_models(caminhos = model_paths)
  caminhos.cada fazer |caminho|
    se preload_models.redimensionável?
      .idl = preload_models.map { |Modelo| "#{caminho}/#{modelo.sublinhado}.rb" }
    mais
      .idl = Gerente.global("#{caminho}/**/*.rb")
    end

    .idl.sort.cada fazer |file|
      load_model(file.gsub(/^#{path}\// , "").gsub(/\.rb$/, ""))
    end
  end
end

#model_paths ➤ Array<String>

Retorna a array de caminhos onde as definições de modelo do aplicativo estão localizadas. Se o Rails estiver carregado, o padrão será os caminhos "app/models" configurados (por exemplo ' config.paths'); caso contrário, o padrão será `%w(./app/models ./lib/models)'.

Observe que esses caminhos são as raizes das hierarquias de diretório onde os modelos estão localizados; não é necessário indicar todos os subdiretórios, desde que esses caminhos raiz estejam localizados em '$LOAD_PATH'.

Retorna:

  • (Array<String>)

    a array de caminhos do modelo



68
69
70
71
72
# Arquivo 'lib/mongoid/loadable.rb', linha 68

def model_paths
  @model_paths ||= definido?(Trilhos) ?
    Trilhos.Aplicativo.config.caminhos["app/models"].Expandido :
    DEFAULT_MODEL_PATHS
end

#model_paths=(caminhos) ➤ Objeto

Define os caminhos do modelo para a array de caminhos fornecida. Esses são os caminhos onde as definições de modelo do aplicativo estão localizadas.

Parâmetros:

  • caminhos (Array<String>)

    A lista de caminhos de modelo



78
79
80
# Arquivo 'lib/mongoid/loadable.rb', linha 78

def model_paths=(caminhos)
  @model_paths = caminhos
end