2010-08-06 40 views
0

某個動作必須根據uri參數加載html頁面。它適用於所有有效的uris,除了當前服務器的那些。有沒有一種簡單的方法可以從控制器中請求頁面?如何從Rails頁面請求Rails頁面?

require 'uri' 
class MainController < ApplicationController 
    def foo 
    uri = URI(params[:uri]) 
    if uri.host =~ /localhost|mydomain\.com/ 
     # what goes here? 
    else 
     @html = Net::HTTP.get(uri) 
    end 
    # Do something useful with @html... 
    end 
end 
# The code should work for http://localhost/foo?uri=http://apple.com/ 
# as well as for http://localhost/foo?uri=http://localhost/bar 

回答

0

爲什麼要區分?沒有關於您想要完成的更多細節,我只需撥打Net::HTTP.get(uri)即可獲取任何網址。你應該明顯地過濾掉/foo以避免無限循環。

+0

正如我所說,它不適用於當地的網站。內部的HTTP.get超時。 – 2010-08-06 05:03:25

+1

在1 mongrel服務器下的開發模式下,還是在Passenger等可以同時處理多個連接的生產模式下? – jdl 2010-08-06 07:27:22

+0

也在生產中,在Heroku上。不知道爲什麼,但用2個dynos不起作用,但有3個。它會做,然後:-) – 2010-08-06 14:38:05