2015-08-30 93 views
3

你怎麼給出的URL的完整路徑後得到整個路徑如下紅寶石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 &限值爲5'

回答

3

你可以問URI對象的pathquery,並fragment這樣的:

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

或(多一點consice,但不太明顯):

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

你正在尋找的方法是request_uri

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

你可以使用你想要的任何方法如有需要,請刪除領先的/

編輯:爲了得到#符號之後的部分,使用fragment

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

謝謝。但是,這是缺少#時間= 1305298413 – user2974739

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