Ruby URI - 如何在URL之后获取整个路径

时间:2015-08-30 04:25:38

标签: ruby parsing uri

如何获得以下

的URL的完整路径
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")

我只想要posts?id=30&limit=5#time=1305298413

我尝试了uri.path并返回/发布,ui.query返回'id = 30& limit = 5'

3 个答案:

答案 0 :(得分:8)

您要查找的方法是request_uri

uri.request_uri
=> "/posts?id=30&limit=5"

如果需要,您可以使用任何方法删除潜在客户/

修改:要在#符号后获取该部分,请使用fragment

[uri.request_uri, uri.fragment].join("#")
=> "/posts?id=30&limit=5#time=1305298413"

答案 1 :(得分:4)

您可以向URI对象询问pathqueryfragment这样的内容:

"#{uri.path}?#{uri.query}##{uri.fragment}"
# => "/posts?id=30&limit=5#time=1305298413"

或(更多一点,但不太明确):

"#{uri.request_uri}##{uri.fragment}"
# => "/posts?id=30&limit=5#time=1305298413"

答案 2 :(得分:0)

File.basename("http://foo.com/posts?id=30&limit=5#time=1305298413")
# => "posts?id=30&limit=5#time=1305298413"