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

时间:2014-04-24 06:24:08

标签: ruby-on-rails ruby exception ruby-on-rails-4

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

如何让应用程序呈现erb文件,因为我想在页面上添加一些动态内容。

谢谢你的帮助, 亚历

2 个答案:

答案 0 :(得分: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

现在,您可以在错误文件夹errors.html.erb中创建视图并呈现@error_message变量。 那就是。

答案 1 :(得分:2)

Ryan提供了一个很棒的教程,解释了rails中的异常处理,看看这个http://railscasts.com/episodes/53-handling-exceptions