在routes.rb中写入可以将params传递给新URL的重定向规则

问题描述 投票:0回答:2

所以我有一个名为的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与params仍然完好无损?

谢谢

ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5
2个回答
1
投票

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

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

0
投票

你需要有request对象来设置parameters完好无损。

按照documentation尝试

get '/insurance', to: redirect { |params, request| "/insurance-for-all?#{request.params.to_query}" }
© www.soinside.com 2019 - 2024. All rights reserved.