ruby-on-rails - 如何在 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 消息?
解决方案
推荐阅读
- terraform - 使用 Terraform 和 aws_ami_ids 数据源将 AMI 共享给子账户
- apache-flink - 保存点与外部检查点
- ios - 如何从 xcode 仪器时间分析器获取挂钟时间?
- ruby - Ruby:如何遍历数据库记录以返回真正的键/值对
- javascript - 提升如何应用于此 JavaScript 代码?
- javascript - 为什么 Chrome 没有收到我的 cookie?
- r - 如何从与现有数据集不匹配的变量创建新数据表
- react-native - 当 TextInput 获得焦点时,按钮不接收 onPress 事件
- javascript - Array.toString() 返回数组而不是字符串 - 为什么?Javascript
- python - QClipboard.mimedata() 总是有黑色背景