Rails 的路线:如何通过“所有"路线重定向中的请求参数 [英] Rails' routes: how to pass "all" request params in a redirect

查看:16
本文介绍了Rails 的路线:如何通过“所有"路线重定向中的请求参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将所有 root 请求重定向到一个 /pages/home url,但我想保留在原始请求.

I want to redirect all root requests to a /pages/home url, but I want to keep all the params used in the original request.

所以:

http://myserver.com/?param1=value1&param2=value2

变成

http://myserver.com/pages/home?param1=value1&param2=value2

有几个关于在 redirect 中传递参数的 SO 问题,但我没有找到与传递请求的参数相关的任何问题.

There are several SO questions about passing params in a redirect but I haven't found any related to passing request's params.

推荐答案

# routes.rb
root :to => redirect { |params, request| "/pages/home?#{request.params.to_query}" }

更新 1

您还可以使用 request.params 来构建新的 path:

root :to => redirect { |params, request| "/pages/#{request.params[:page]}.html?#{request.params.to_query}" }

这篇关于Rails 的路线:如何通过“所有"路线重定向中的请求参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆