【问题标题】:request.fullpath with no parameters不带参数的 request.fullpath
【发布时间】:2011-07-13 01:31:57
【问题描述】:

request.fullpath 给出完整路径加上任何传递的参数,例如

/page?param1=value&param2&value

我怎样才能只得到没有参数的页面?喜欢

/page

谢谢。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

使用path 而不是fullpath

虽然没有记录,request.path 为我工作。我通常使用我的插件 rails_web_console 来处理请求对象。

更新:

turboladen 注意到,“[ActionDispatch::Request][2] 继承自 [Rack::Request‌][3]​,其中定义了 request.path”。

path 没有记录在那里,但源显示 script_name + path_info。

【讨论】:

    【解决方案2】:

    无需拆分,

    request.path_info

    给你的就是这个

    【讨论】:

      【解决方案3】:

      正则表达式

      request.fullpath.gsub( /\?.*/, "" )
      

      【讨论】:

        【解决方案4】:

        简单的拆分怎么样:

        request.fullpath.split("?")[0]
        

        【讨论】:

        • #fullpath 的来源表明它是#path 和#query 的串联。只需使用#path rubydoc.info/gems/rack/Rack/Request:fullpath 就可以节省一些工作(我知道这已经被问及回答了,但对于未来的 SO'ers 来说仍然值得注意)
        • 仅仅因为答案有效,并不意味着:这是正确的答案。投票是缺乏责任心的一个例子。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-07
        • 2017-06-19
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        相关资源
        最近更新 更多