本文介绍了路由全包时重定向并引发Flash消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我能够使用:
match'* a'=> redirect('/')
我想进行重定向并在其中传递警报消息 routes.rb
。
有点像(这里的语法错误):
match'* a'=> redirect(’/’),:alert => aaargh,您不想去#{params [:a]}
是
如果在视图/控制器中执行此操作,则可以使用 redirect_to
并在重定向页面上传递Flash消息(请参阅文档中)。创建一个新的控制器方法并重定向到那里可以用,但是似乎不太好...这是推荐的方法吗?
解决方案
对使我可以这样做:
match'* a'=>重定向{| p,req | req.flash [:error] = aaargh,您不想转到#{p [:a]}; '/'}
将无效页面重定向到'/'
以及所需的(动态)消息。
如果您访问 www.your_website / a_bad_place
会在'/'
上传递消息:
。 / p>
您可以使用以下方法获取整个违规(无效)网址:
#{req.env [ HTTP_HOST]}#{req.env [ REQUEST_PATH]}
并显示以下内容:
match'* a'=>重定向{| p,req | req.flash [:error] = aaargh,您不想转到#{req.env [ HTTP_HOST]}#{req.env [ REQUEST_PATH]}}; '/'}
,您会看到:
.
You can grab the entire offending (invalid) url by using:
#{req.env["HTTP_HOST"]}#{req.env["REQUEST_PATH"]}
and display it with this:
match '*a' => redirect { |p, req| req.flash[:error] = "aaargh, you don't want to go to #{req.env["HTTP_HOST"]}#{req.env["REQUEST_PATH"]}"; '/' }
and you'll see:
这篇关于路由全包时重定向并引发Flash消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!