首页 > 解决方案 > 如何在 Rails 6 中使用 flash 和错误处理程序?

问题描述

由于某种原因,从错误中救援时,闪存消息不起作用。

路线.rb:

  get '/test', :to => 'pages#test', :via => :all
  match '/500', :to => 'errors#internal_server_error', :via => :all

应用程序.rb:

module RailsApp
  class Application < Rails::Application
    config.exceptions_app = self.routes

pages_controller.rb

class PagesController < ApplicationController
  def test
    raise 'Test error'
  end

错误控制器.rb:

class ErrorsController < ApplicationController
  def internal_server_error
    flash[:notice] = 'Internal server error. Please try again later.'
    redirect_to root_url
  end

访问 /500 会重定向并呈现预期的 flash,但访问 /test 不会。

访问 /test 重定向到 root 但不呈现flash 消息。

捕获异常时如何呈现 Flash 消息?

标签: ruby-on-railsruby-on-rails-6

解决方案


推荐阅读