2012-03-28 27 views
0

這是Sinatra應用程序的一個片段,用戶將提交URL。我必須確保http://預設爲url,以便在我的應用程序外部路由。我如何說site一次並訪問它的屬性? (3號線)狀態對象一次,並檢索多個屬性

p.params= "www.ruby-lang.org/en/" 
    site = URI(p.params[:url]) 
    site = "http://" + site.host + site.path + site.query 

回答

1

如果您需要確保網址開頭是http://,爲什麼不使用正則表達式?只有

p.params = "www.ruby-lang.org/en/" 
site = p.params.gsub(/^(­?!http:\/\­/)/, "http­://") 
# site = http://www.ruby-lang.org/en/ 

^(­?!http:\/\­/)匹配時字符串的開頭不是其次通過http://

+0

不是引發用戶的錯誤不包括的「http://」,我想側步的通過從字符串中提取主機,路徑和查詢(如果存在)並自動預先配置,完全發佈。 – Dru 2012-03-28 03:01:13

+0

此方法不會引發錯誤。它只是在需要的時候預先設置'http://'。否則,它會將「site」設置爲原始URL。 – Kyle 2012-03-28 03:15:31

相關問題