URL和rails路由系统中的双斜线

时间:2015-01-17 04:32:39

标签: javascript ruby-on-rails ruby routes

在我的Rails应用程序中有两个URL,例如

http://myurl/foo/bar
http://myurl/foo//bar

以相同的方式处理。 Rails非常聪明地忽略斜杠之间的空属性,但当我用前端Javascript框架链接所有东西时它就成了问题;我的前端路由系统因此而爆炸。

在我看来,这应该被理解为Rails在URL中的一个问题,因为它看起来更严格和合乎逻辑。

因此,当routes.rb在路径中检测到//时,我想简单地将用户重定向到主页;这怎么可能?

谢谢;)

编辑:

我试过这种事情

match ':url' => redirect('/'), :constraints => { url: /\/+/ }, via: [:get, :post]

它不起作用,看起来路径文件是在rails首先操作绝对URL之后读取的,或类似的东西......

1 个答案:

答案 0 :(得分:0)

我会尝试编写正则表达式,在将路由传递给特定控制器以处理路由之前验证路由。如果验证证明url无效,则重定向到归属路由