【问题标题】:No Route Matches [GET] with # or ? parameter error没有路由匹配 [GET] 与 # 或 ?参数错误
【发布时间】:2015-04-10 03:49:10
【问题描述】:

我有这条路线:

# :chwid => Camera Hardware ID - :mid => Machine ID - :fs => FormatString
get '/videocams/video/:chwid/:mid/:fs' => "videocams#get_videocams_id", :constraints => { :chwid => /[^\/]+/, :mid => /[^\/]+/, :fs => /[^\/]+/ }

但是当我调用路由时,我的第一个参数 :chwid 包含字符 # >?

(@device:pnp:\?\root#image#0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global)

并调用错误:

开始 GET "/videocams/video/@device:pnp:%5C%5C?%5Croot"

ActionController::RoutingError (没有路由匹配 [GET] "videocams/video/@device:pnp:%5C%5C":

什么可能会触发此错误,我该如何解决?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    在 URL 中有意义的 URL 转义字符位于 #?

    【讨论】:

    • 但是我的约束并没有忽略除了字符“/”之外的这些含义?
    • @gumaro 你试过对它们进行 URL 转义吗?我不记得了,但我认为 #? 字符是与段约束分开处理的。
    • 我应该在哪里做?在路上?
    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多