Ruby · Avançado · Inglês · Técnico
const missing
Método de classe chamado pelo Ruby quando uma constante não é encontrada. Sobrescrevê-lo permite carregar código sob demanda ou criar constantes dinamicamente.
Onde usar
Foi a base do autoload antigo do Rails; hoje o Zeitwerk usa autoload e a API de constantes do Ruby. Aparece ao depurar um NameError de constante.
Em código
module Config
def self.const_missing(nome)
"sem #{nome}"
end
end
p Config::TIMEOUT # => "sem TIMEOUT"Exemplos
The old Rails autoloader relied on const_missing.
O autoloader antigo do Rails dependia do const_missing.
Overriding const_missing can hide typos.
Sobrescrever const_missing pode esconder erros de digitação.
Cuidado
Não use para esconder erros de digitação: toda constante inexistente passaria a devolver algo e o NameError sumiria.