【问题标题】:Catch all exceptions and display dynamic error page Ruby on Rails 4捕获所有异常并显示动态错误页面 Ruby on Rails 4
【发布时间】:2014-04-24 06:24:07
【问题描述】:

我目前正在开发 Rails 4 应用程序,并且已经到了想要在发生任何异常时向用户显示自定义错误页面的地步。目前使用的是public目录下的500.HTML。

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

感谢您的帮助, 亚历克斯

【问题讨论】:

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


【解决方案1】:

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 变量。 就是这样。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这个教程很老了,现在rails有灵活的方法来救援异常。
    • 教程有修改版
    • 在你的链接教程日期Jul 04, 2007,放修改版。
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多