2011-01-10 6 views
0

私は2つのRoR3アプリケーション(APP1APP2Ruby on Railsアプリケーションから部分的にレンダリングすることは可能ですか?

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

を持っていると私は、表示したいですAPP1いくつかのビューはAPP2です。

私は "ネット:: HTTPの要求(APP1のコード)

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

を使用しますが、応答はHTTPコードとして評価されていないことをやってみました。私がもっと簡単にやりたいことをするための他のテクニックがあるかどうかは分かりません。

だから、それは同じRoRのアプリケーションでパーシャルをレンダリングする一般的かつ簡単なアプローチを使用してAPP2APP1からパーシャルをレンダリングすることは可能でしょうか?

例:

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

もしそうなら、私はそれをどのように行うことができますか?

答えて

3

、この試してみてください。それが動作します

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

:あなたのビューで

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://www.ducklet.com/' %> 

、あなたは含めているURLを所有していない場合、あなたは、クロスサイトスクリプティングのおかしなの対象となることを警告さ:白紙画像の束を見て、これを試してみてください。

0

どちらのアプリでも使用できるように、共有コード(つまり部分文字列)を含む宝石を作成する方が賢明かもしれません。

+0

どういう意味ですか? – user502052

+0

"gem"は、複数のプロジェクトに簡単に組み込むことができるパッケージ化されたルビーオブジェクトのセットです。 Railsに相当するプラグインは、ここでより適切かもしれません。 –

1

2つのアプリケーションがファイルシステムを共有している場合、または共有ファイルシステムにアクセスできる場合は、ファイルパス別に部分的に参照することができます。 Railsのからのレンダリングに導く:

2.2.4 renderメソッド任意のファイル

レンダリングも、完全にあなたの アプリケーションの外で(おそらくあなたは二つの間 意見を共有しているのビュー を使用することができますRailsアプリケーション):

Railsが、これはファイルであると判断し "/ U /アプリケーション/ warehouse_app /現在/アプリ/ビュー/製品/ショー" をレンダリングはスラッシュのためにレンダリングされます 文字。 (Railsの2.2およびそれ以前に を必要とした)ファイルオプション:明示的であるために、あなたは 使用することができます

をレンダリング:ファイル=>
「/ U /アプリケーション/ warehouse_app /現在/アプリ/ビュー/製品/ show "

The:fileオプションは、絶対パス を使用します。もちろん、 のコンテンツをレンダリングするために、 というビューにアクセスするには、 が必要です。ここで

関連する問題