bra*_*rad 14 redirect routes ruby-on-rails-3
我的routes.rb中有一个正常运行的重定向;
match "/invoices" => redirect("/dashboard")
Run Code Online (Sandbox Code Playgroud)
我现在想要为此添加一个查询字符串,例如,
/invoices?show=overdue
Run Code Online (Sandbox Code Playgroud)
将被重定向到
/dashboard?show=overdue
Run Code Online (Sandbox Code Playgroud)
我尝试过几件事.我最接近的是;
match "/invoices?:string" => redirect("/dashboard?%{string}")
Run Code Online (Sandbox Code Playgroud)
这给了我正确的输出,但原始URL仍然显示在浏览器中.
我敢肯定我错过了一些非常简单的东西,但我看不清楚.
Mik*_*iet 16
在这种情况下,您可以使用请求对象:
match "/invoices" => redirect{ |p, request| "/dashboard?#{request.query_string}" }
Run Code Online (Sandbox Code Playgroud)
最简单的方法(至少在Rails 4中)是使用选项模式进行重定向调用.
get '/invoices' => redirect(path: '/dashboard')
Run Code Online (Sandbox Code Playgroud)
这将仅更改路径组件并保留查询参数.