Мне нужно создать страницу пользовательских ошибок в моем приложении rails, что позволяет мне использовать erb.
Я слежу за этим уроком (http://blog.tommilewski.net/2009/05/custom-error-pages-in-rails/), и я не могу заставить его работать локально (или удаленно). Я запускаю Rails 2.3.5
Вот суть подхода.
1) в "application_controller", я перехожу к методу "render_optional_error_file (status_code)" и устанавливаю видимость на "protected", как это.
protected
def render_optional_error_file(status_code)
known_codes = ["404", "422", "500"]
status = interpret_status(status_code)
if known_codes.include?(status_code)
render :template => "/errors/#{status[0,3]}.html.erb", :status => status, :layout => 'errors.html.erb'
else
render :template => "/errors/unknown.html.erb", :status => status, :layout => 'errors.html.erb'
end
end
def local_request?
true
end
Я также создал папку в представлениях под названием errors
и создал следующие представления: 404.html.erb
, 422.html.erb
, 500.html.erb
, unknown.html.erb
и создал новый макет "errors.html.erb"
Я не могу заставить его работать. Я пытаюсь запустить страницу 404, перейдя к http://localhost:3000/foobar
- но вместо того, чтобы получать новый 404.html.erb
, я, кажется, получаю стандартную ошибку apache 500. Это происходит, когда я пытаюсь как mongrel_rails start
, так и mongrel_rails start -e production
.