我有这个链接:
railsapp/api/details.php?id=1&app=dvd
我需要重定向到外部非rails服务器中的另一个页面:
non-railsapp/api/details.php?id=1&app=dvd
如果我把它放在routes.rb文件中:
match '/api/details.php' => redirect("non-railsapp/api/details.php")
重定向将起作用,但参数不会传递。什么魔法需要在那里,以便params也通过?
事实上,能够将/api/
之后的所有参数重定向到具有所有参数的外部网站将是多么美妙的事情。这会让我的生活变得更轻松。
我已经阅读了有关Rails路由的文档,但找不到任何类似的例子。
感谢。
答案 0 :(得分:2)
尝试这样的事情:
get "/api/details.php/:id/:app" => redirect{ |p, req| "non-railsapp/api/details.php/#{p[:id]}/#{p[:app]}" }
修改强>:
您还可以将参数设为可选:
get "/api/details.php(/:id(/:app))" => redirect{ |p, req| "non-railsapp/api/details.php(/#{p[:id]}(/#{p[:app]}))" }
答案 1 :(得分:1)
您可以执行以下操作:
url = URI(“http://www.google.com/”)
url.query = URI.encode_www_form(:q =>“查询”)
#redirecting to http://www.google.com/?q=query
redirect_to url.to_s