2012-05-04 11 views
5

que tengo una vista llamada new.html.erb con el siguiente código:rieles página de error completo no mostrando de vista de los errores

<%= some_non_existent_thing.imaginary_method %> 

Ahora, sólo veo una página de error 500 simple, como que:

500 Error interno del servidor
Si usted es el administrador de este sitio web, lea el archivo de registro de esta aplicación web y/o el archivo de registro del servidor web para averiguar qué salió mal.

¿No debería ver una página bastante formateada con información sobre la excepción?

No estoy seguro de perder algo aquí, pero creo que los raíles solían mostrar la página de error completa en el entorno de desarrollo cuando hay algo mal en la vista.

+3

entonces, ¿esto sucedió en su caja de desarrollo o en lugares como Heroku? –

+0

¿qué hay en los registros? – gabrielhilal

Respuesta

5

Son ¿Estás seguro de que estás ejecutando el entorno de desarrollo? Compruebe que RAILS_ENV=development o que está ejecutando rails server -e development.

A continuación, compruebe su archivo development.rb, usted debe tener la siguiente línea en ella

config.consider_all_requests_local = true 
0

primer lugar, como Anton menciona en la respuesta a continuación, confirmar que su config/environments/development.rb tiene:

config.consider_all_requests_local = true 

y que está ejecutando el servidor en modo de desarrollo.

Me había asegurado lo anterior y todavía he observado el error. Esto sucedió en mi caso, porque mi registrador tenía algunos errores. Estaba usando un formateador de registro personalizado, que utilizó el método String#% para formatear el registro. % parece ser muy defectuoso y conduce a todos estos errores extraños. Calculé esto agregando una línea debugger al método del controlador y entrando en la llamada a la función de representación implícita. Alcanzó el error y lo informó como un error malformed format string.

Este fue el formateador de registro que estaba usando antes, lo que hizo que los insectos [había añadido a un fichero de inicialización]:

class Logger::SimpleFormatter 
    def call(severity, time, progname, msg) 
    "%-7s #{msg}\n" % severity 
    end 
end 

Estas modificaciones corregido el error:

class Logger::SimpleFormatter 
    def call(severity, time, progname, msg) 
    severity_prefix = "[#{severity}]".ljust(7) 
    "#{severity_prefix} #{msg}\n" 
    end 
end 
0

Esto sucede si el código no es compilables, por ejemplo, si usted tiene una sentencia if falta un fin.

+0

En desarrollo, debe mostrar la excepción y no la página de error 500. – felipero

Cuestiones relacionadas