2009-09-25 44 views
11

我想在我的rails應用程序中構建一個url,指向另一個不運行rails的服務器。使用url_for幾乎滿足我的要求,但它需要一個我不需要的控制器鍵(重定向到外部站點的頂級頁面)。在rails中生成外部url

我想這樣做的原因是,我有一個乾淨的構造一個URL參數散列(其中一些是在運行時確定的)。

+1

愛是愛谷歌 - 5小時,你問你的問題後,這是第六屆結果'軌道生成外部網址'。 – nfm 2009-09-26 01:04:54

回答

3

您對URI::HTTP有什麼看法?

+1

不幸的是,我不能像查詢字符串那樣傳遞查詢字符串,因爲我願意,但它足夠接近。我覺得有點奇怪,用'to_s'方法使用'HTTPS :: build'會返回一個https uri,而使用'request_uri'方法返回一個http uri。 – 2009-09-28 18:04:54

+0

我不知道一個簡單的解決方案,散列成prameters問題。如果你不需要嵌套參數,你可以創建一個簡單的函數來完成這個任務。 URI :: HTTPS.request_uri()函數僅返回路徑和查詢字符串。之前的所有內容都被忽略了您可以在Rails控制檯中輕鬆嘗試。 – Roman 2009-09-29 08:50:56

26

您可以致電哈希to_query中軌,這將照顧url編碼等。因此,也許是這樣的:

params = { 
    :a => "http://google.com", 
    :b => 123 
} 
url = "http://example.com?#{params.to_query}"