2011-07-19 8 views
0

クライアントが特定のコントローラアクションを要求した場合に送信されるhtmlを取得したいと考えています。しかし、私はサーバーからこれをやりたいと思います。私はこの生のhtmlを後日使用するためにデータベースに保存したいと思います。これはどうすればできますか?ページのhtmlを取得する

編集:私はあなたがルビー

url = URI.parse('http://www.example.com/index.html') 
req = Net::HTTP::Get.new(url.path) 
res = Net::HTTP.start(url.host, url.port) {|http| 
    http.request(req) 
} 
body_html = res.body 

NET::HTTPライブラリを使用してHTMLを取得することができます

+2

Downvotes?これはまれではあるがかなり有効な質問です。あなたがそれを理解することができないので、ただdownvoteしないでください。 – providence

答えて

0

私は、私はそれは少しハックようだとしてこれを行うには持っていないことを期待していたが、これは部分的に必要なHTMLを置くことによって達成することができ、その後については、このリンクを参照してください

render :partial => '/the/partial' 
を呼び出します詳細:

http://www.justinbritten.com/work/2008/10/rendering-rails-partials-in-a-model-or-background-task/

編集:上記のリンクに記載された方法は、唯一のレール3の場合、事前のRails 3を動作しますが、レンダリングを実現するためにAbstractControllerを使用しています。

1

...にも応答して送信されエキストラ、スタイルシート、スクリプトなどを必要としますbody_htmlをデータベースオブジェクトに保存することができます。

これは、クライアントが取得するhtmlを返すことです。 「本当の」世界では、ブラウザはこのHTMLを解析して、スタイルシート、スクリプト、画像のために別々のHTTP get要求を行います。同じことをしてから別のデータベースオブジェクトに格納する必要があります。警告のMethod to parse HTML document in Ruby?

ワード:

この質問はあなたの構文解析部分に役立つかもしれないいくつかのツールを提供します私はあなたが何をしようとして、あなたが考えているよりも多くの困難になるだろうと思われます。あなたが実際に成し遂げようとしていること、そしてこれが最善の方法になっているかどうか、良い考えを与えてください。

関連する問題