如何在ruby轨道上的命名路由中使用+?

时间:2013-11-27 15:12:15

标签: ruby-on-rails ruby routes

我的路线中有路线.rb即

match '/googleplus' => redirect("https://plus.google.com/+username"), :as => :googleplus

所以在浏览器中如果有人打开

www.example.com/googleplus

他将重定向到谷歌加页面。现在我想成功

www.example.com/google+

www.example.com/+google

实现同样的目标。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

您需要对'+'进行编码,因为大多数浏览器通常会用空格替换它。 '+'的URI编码是'%2B':

match '/google%2B' => redirect("https://plus.google.com/+username"), :as => :googleplus

match '/%2Bgoogle' => redirect("https://plus.google.com/+username"), :as => :googleplus

答案 1 :(得分:0)

您不能“简单地”执行此操作,您必须对其进行URL编码,但这样无论如何都无法实现。 Explanation here

答案 2 :(得分:0)

你可以转义+字符。你的路线看起来像这样。

match '/googleplus' => redirect("https://plus.google.com/\+username"), :as => :googleplus
相关问题