Ruby on rails Rails flash:error,:重定向时通知丢失,但警报未丢失
用于的文档明确指出,Ruby on rails Rails flash:error,:重定向时通知丢失,但警报未丢失,ruby-on-rails,flash,redirect,Ruby On Rails,Flash,Redirect,用于的文档明确指出,重定向到可以在路径后使用:alert=>“x”和:notice=>“x”选项,但其他任何选项都需要进入“通用闪存桶” 在我的应用程序中,我们经常使用flash[:error],所以我尝试这样做 重定向到根路径,:flash=>{:error=>“x”} 但是错误不会显示在重定向页面上 我在没有重定向的情况下进行了测试,即在正常渲染中,flash[:error]=“x”成功显示消息“x”,因此在视图中这显然不是问题,但下面是相关代码: - flash.each do |name
重定向到
可以在路径后使用:alert=>“x”
和:notice=>“x”
选项,但其他任何选项都需要进入“通用闪存桶”
在我的应用程序中,我们经常使用flash[:error],所以我尝试这样做
重定向到根路径,:flash=>{:error=>“x”}
但是错误不会显示在重定向页面上
我在没有重定向的情况下进行了测试,即在正常渲染中,flash[:error]=“x”
成功显示消息“x”,因此在视图中这显然不是问题,但下面是相关代码:
- flash.each do |name, msg|
= content_tag :div, msg, :id => "flash_#{name}"
我也尝试过flash.keep重定向,但flash bucket总是丢失
此外,这个错误最近才出现,所以它似乎可能与一些gem的升级有关——不过rails版本没有改变。我使用的是Rails 4.1.6
另外-我刚刚意识到:注意被过滤掉的方式与错误相似,我不得不检查我的代码,并用:success替换注意-非常困惑,我检查了actionpack的gem版本,其中Flash被编码,它与这一切正常工作时的情况相同
bundle exec bundle show actionpack
.....shared/bundle/ruby/2.3.0/gems/actionpack-4.1.6
你试过下面的吗
重定向到(根路径,{:flash=>{:error=>“x”})
您在下面尝试过吗
重定向到(根路径,{:flash=>{:error=>“x”})
实际上与
redirect_to(whiteboards_path, flash: {warning: "x"} )
但不是用
redirect_to(whiteboards_path, flash: {error: "x"} )
似乎在重定向中,flash发生了一些事情来删除错误键和值,这是最近才引入的,或者是一些gem,或者是我们的代码
我也试过了
flash[:error] = "x"
redirect_to some_path and return
它不起作用,但是
flash[:error] = "x"
render some_template
工作正常,即未删除错误键和值
因此,对于我自己的问题,这是一个糟糕的答案,但如果没有人想出更好的答案,我会接受:
重定向时使用alert:“x”
而不是flash:{:error=>“x”}
,因为有东西删除了flash bucket中的错误键val
redirect_to(whiteboards_path, flash: {warning: "x"} )
但不是用
redirect_to(whiteboards_path, flash: {error: "x"} )
似乎在重定向中,flash发生了一些事情来删除错误键和值,这是最近才引入的,或者是一些gem,或者是我们的代码
我也试过了
flash[:error] = "x"
redirect_to some_path and return
它不起作用,但是
flash[:error] = "x"
render some_template
工作正常,即未删除错误键和值
因此,对于我自己的问题,这是一个糟糕的答案,但如果没有人想出更好的答案,我会接受:
重定向时使用alert:“x”
而不是flash:{:error=>“x”}
,因为有东西删除了flash bucket中的错误键val摘自“Rails 4路”
Rails 4的新增功能是使用新的ActionController::flash.add_flash_types宏样式方法注册您自己的flash类型
类应用程序控制器
...
添加\u闪存\u类型:错误
结束
注册闪存类型后,一个类似于alert和notice的特殊闪存访问器可用于重定向到
重定向到post\u url(@post),错误:“出了点问题!
摘自《Rails 4路》
Rails 4的新增功能是使用新的ActionController::flash.add_flash_types宏样式方法注册您自己的flash类型
类应用程序控制器
...
添加\u闪存\u类型:错误
结束
注册闪存类型后,一个类似于alert和notice的特殊闪存访问器可用于重定向到
重定向到post\u url(@post),错误:“出了点问题!
很有趣,谢谢,除了:error!!我用重定向到白板路径进行测试,dizzy:'dizzy',success:'success',warning:'warning',error:'error'并返回
,在我的应用程序控制器
中添加flash类型:dizzy,:success,:warning,:error
,因此还不能给出可接受的答案。很有趣,谢谢,除了“错误”之外,它在任何情况下都能正常工作!!我用重定向到白板路径进行测试,dizzy:'dizzy',success:'success',warning:'warning',error:'error'并返回
,在我的应用程序控制器
中添加flash类型:dizzy,:success,:warning,:error,因此还不能给出可接受的答案。