如何获得以下
的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'
答案 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
对象询问path
,query
和fragment
这样的内容:
"#{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"