2011-01-10 71 views
0

我有兩個RoR3應用(APP1APP2是否可以將部分從Ruby on Rails應用程序渲染到另一個應用程序?

  • www.subdomain1.example.com
  • www.subdomain2.example.com

,我想展示在APP1APP2的一些意見。

我試圖做,使用一個 '網:: HTTP' 請求(代碼在APP1

Net::HTTP.get(URI.parse("http://www.subdomain2.example.com/users/new")) 

但響應沒有評價爲HTTP代碼。除了別的以外,我不知道是否有其他技術可以更輕鬆地完成我想要的功能。

那麼,是不是可以用在同一個RoR應用程序的渲染泛音的常見和簡單的方法來呈現來自APP1諧音來APP2

例子:

render :partial => "https://stackoverflow.com/users/new" 

如果是這樣,我該怎麼辦呢?

回答

3

這裏,試試這個:

module ApplicationHelper 
    require 'open-uri' 

    def render_url(url) 
    open url do |f| 
     f.read.html_safe # remove the 'html_safe' if you're on Rails 2.x 
    end 
    end 
end 

在你看來:

<%= render_url 'http://ilikestuffblog.com/' %> 

它將工作。但只有一個問題:如果該網站包含圖片,其他網頁或其他任何相關鏈接,則這些鏈接將無法正確顯示。試試這個看到一堆空白的圖像:

<%= render_url 'http://www.ducklet.com/' %> 

同樣的,予以警告,如果你不擁有你,包括URL,你會受到跨站點腳本的怪事。

0

創建一個包含任何共享代碼(即partials)的gem可能會更審慎,因此這兩個應用程序都可以使用它。

+0

你是什麼意思? – user502052 2011-01-10 16:02:53

1

如果這兩個應用程序共享一個文件系統或可以訪問共享文件系統,那麼您可以直接按文件路徑引用一個部分。從Rails的指導渲染:

2.2.4渲染任意文件

渲染方法也可以使用視圖 這完全是你的 應用程序之外(或許你共享兩個之間 意見Rails應用程序):

渲染 「/ U /應用/ warehouse_app /電流/應用/視圖/產品/節目」

Rails的決定,這是一個文件 由於主角斜槓 而呈現。要明確,你可以使用 的:文件選項(這是需要on Rails的2.2 或更早):

渲染:文件=>
「/ U /應用/ warehouse_app /電流/應用/視圖/產品/ show「

The:file選項採用絕對 文件系統路徑。當然,您需要 纔能有權使用您的 來呈現內容。

相關問題