捕获所有异常并显示动态错误页面Ruby on Rails 4

ale*_*no1 2 ruby ruby-on-rails exception ruby-on-rails-4

我目前正在开发一个Rails 4应用程序,并且我想在发生任何异常时向用户显示自定义错误页面.目前它在公共目录中使用500.HTML.

我怎样才能让应用程序呈现erb文件,因为我想在页面上有一些动态的东西.

亚历克斯,谢谢你的帮助

Зел*_*ный 6

ApplicationController具有方法rescue_from在控制器操作中引发的救援异常:

application_controller.rb:

class ApplicationController < ActionController::Base

  rescue_from YouAwesome::Exception do |exception|
    render_403(exception)
  end

  def render_403(exception)
    logger.warn("Message for log.")
    @error_message = exception.message
    respond_to do |format|
      format.html { render template: 'errors/errors', layout: false, status: 500 }
      format.all { render nothing: true, status: 500 }
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

现在,您可以在errors文件夹errors.html.erb和渲染@error_message变量中创建视图.那个.