【问题标题】:Double slashes in URL and rails route systemURL 和 rails 路由系统中的双斜杠
【发布时间】:2015-03-15 18:41:45
【问题描述】:

在我的 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之后读取了路由文件,或者类似的东西......

【问题讨论】:

    标签: javascript ruby-on-rails ruby routes


    【解决方案1】:

    我会尝试编写一个正则表达式来验证路由,然后再将其传递给特定控制器以处理路由。如果验证证明 url 无效,则重定向到主路由

    【讨论】:

    • 您知道是否可以直接在routes.rb 文件中为所有路由调用方法或执行正则表达式?否则我必须使用application_controller,但我觉得这不是很干净......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2018-10-19
    • 2015-09-07
    • 1970-01-01
    • 2018-01-01
    • 2014-08-22
    相关资源
    最近更新 更多