Objetivo de “consider_all_requests_local” em config / environment / development.rb?

94

Qual é o propósito desta configuração de configuração do Rails ...

config.action_controller.consider_all_requests_local = true

É definido como verdadeiro por padrão em config/environments/development.rb.

Obrigado,

Ethan

Ethan
fonte
12
Como um aparte: no rails 3, a opção éconfig.consider_all_requests_local=
morreu três vezes

Respostas:

123

As solicitações não locais resultam em páginas de erro fáceis de usar. Solicitações locais, supostamente provenientes de desenvolvedores, veem uma mensagem de erro mais útil que inclui números de linha e um backtrace. consider_all_requests_localpermite que seu aplicativo exiba essas mensagens amigáveis ​​ao desenvolvedor, mesmo quando a máquina que faz a solicitação é remota.

Gordon Wilson
fonte
8
A mensagem de erro padrão do Rails é apenas marginalmente amigável. Porém, também serve a outro propósito, que é não mostrar muitas informações sobre o erro interno para estranhos que possam querer usar essas informações contra você.
Gordon McCreight
Isso pode alterar o status e os cabeçalhos da resposta? Digamos, se estou tentando devolver um, 503mas um cliente está recebendo um 500?
PJSCopeland
4

No nível de desenvolvimento, definimos:

consider_all_requests_local set = true

porque o desenvolvedor precisa dar uma olhada no erro completo ao mostrar o layout / visualização como você pode ver na imagem abaixo.

insira a descrição da imagem aqui

Mas, no nível de produção, não precisamos mostrar nosso bug de codificação interno, então definimos false:

config.consider_all_requests_local = false

insira a descrição da imagem aqui

Touseef Murtaza
fonte