在routes.rb中编写重定向规则,该规则可以将参数传递给新URL

时间:2019-04-30 08:40:03

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5

所以我有一个叫做

的URL

http://localhost:3000/insurance?utm_source=article&utm_content=driving

现在该URL需要重定向到此

http://localhost:3000/insurance-for-all?utm_source=article&utm_content=driving

我尝试像这样在routes.rb中这样做

get '/insurance', to: redirect { |params|"/insurance-for-all?#{params.to_query}" }

但是它不起作用。

有没有办法在参数不变的情况下重定向到新的url?

谢谢

2 个答案:

答案 0 :(得分:1)

如果仅使用path选项进行重定向,那么所有参数也将被发送:

get '/insurance', to: redirect(path: "/insurance-for-all")

答案 1 :(得分:0)

您需要具有request对象才能完整设置parameters

按照documentation

尝试
get '/insurance', to: redirect { |params, request| "/insurance-for-all?#{request.params.to_query}" }