如何在Rails路由中访问URL参数

时间:2014-08-13 14:45:23

标签: ruby-on-rails routing spree rails-routing

我遇到了Spree路由问题。

请求发送至/spreeapi,应将其发送至/api

有些请求的URL参数如下:

/spreeapi/option_types?q%5Bname_cont%5D=&_=1407867241807

我试图添加此路由:

mount Spree::Core::Engine, :at => '/shop'
get "/spreeapi(/*path)" => redirect{ |params| "/shop/api/#{params[:path]}".chomp("/") }

虽然这会将请求连接到正确的路径,但我正在丢失所有网址参数

如何重写路线重定向以包含它们。

2 个答案:

答案 0 :(得分:2)

这是我的最终解决方案(感谢@Balrick的帮助):

get "/spreeapi(/*path)" => redirect{ |params, request| "/shop/api/#{params.delete(:path)}?#{request.params.to_query}" }

答案 1 :(得分:0)

尝试使用以下行将查询字符串附加到重定向的网址

get "/spreeapi(/*path)" => redirect{ |params| "/shop/api/#{params.delete(:path)}?#{params.to_query}" }