Пользовательские страницы ошибок в Ruby on Rails - PullRequest
1 голос
/ 19 июля 2010

У меня есть этот код где-то в моем контроллере:

raise PermissionDenied

Когда это выполняется, я хочу показать пользовательскую страницу ошибки, написанную на HAML, а не страницу по умолчанию NameError.

Кто-нибудь может мне помочь?Спасибо.

1 Ответ

2 голосов
/ 19 июля 2010

Метод rescue_from можно использовать для глобальной обработки исключений.

Измените файл app/controller/application_controller.rb, добавив обработчик исключений.

class ApplicationController < ActionController::Base

  rescue_from ::PermissionDenied, :with => :render_permission_denied

  def render_permission_denied(e)
    @error = e   # Optional, accessible in the error template
    log_error(e) # Optional 
    render :template => 'error_pages/permission_denied', :status => :forbidden
  end
end

Теперь добавьте файл haml с именем permission_denied.html.haml в каталоге app/views/error_pages.

%h1 Permission Denied!
  %p #{@error.message}

Подробнее см. В документации по рельсам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...