Ruby URI - 如何在 URL 之后获取完整路径
Ruby URI - How to get entire path after URL
如何获得 URL 的完整路径
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
我只要posts?id=30&limit=5#time=1305298413
我尝试了 uri.path 和 returns /posts 和 ui.query returns 'id=30&limit=5'
您可以像这样向 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"
您要找的方法是request_uri
uri.request_uri
=> "/posts?id=30&limit=5"
如果需要,您可以使用任何您想要删除前导的方法。/
。
编辑:要获取 #
符号后的部分,请使用 fragment
:
[uri.request_uri, uri.fragment].join("#")
=> "/posts?id=30&limit=5#time=1305298413"
File.basename("http://foo.com/posts?id=30&limit=5#time=1305298413")
# => "posts?id=30&limit=5#time=1305298413"
如何获得 URL 的完整路径
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
我只要posts?id=30&limit=5#time=1305298413
我尝试了 uri.path 和 returns /posts 和 ui.query returns 'id=30&limit=5'
您可以像这样向 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"
您要找的方法是request_uri
uri.request_uri
=> "/posts?id=30&limit=5"
如果需要,您可以使用任何您想要删除前导的方法。/
。
编辑:要获取 #
符号后的部分,请使用 fragment
:
[uri.request_uri, uri.fragment].join("#")
=> "/posts?id=30&limit=5#time=1305298413"
File.basename("http://foo.com/posts?id=30&limit=5#time=1305298413")
# => "posts?id=30&limit=5#time=1305298413"