Метод 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}
Подробнее см. В документации по рельсам .