2011-08-12 17 views
2

私はrails3とrubyの新しいユーザーです。私が持っている問題について質問したいと思っていましたレールをリアルタイムで更新するにはどうすればよいですか?

私のアプリでは、データベースからホストのリストを取得し、 sshを実行してジョブを実行する ジョブの結果が文字列に追加される(ログと考える)。これはすべて、実行するコマンドが指定されたポストを介して呼び出される。

プロセスの最後に、ログはページに表示されます

これまでのところ、すべての接続を実行するのにかかる時間はかなり長いです(1分以上)ので、結果はpプロセスが終了するまで(ほぼリアルタイムで)divファイル内にログファイルを更新して表示します。

私は少しの研究を行いましたが、私はJQueryなどを使用してこのアイデアを行うことができます私はレールの環境で何かのこの種を行う方法がわからないと私は本当に

を助けていないことがわかりましたチュートリアルのすべてはこの瞬間

update_controller.rbに私のコードです

def update 
    list = Device.all 
    c = params[:comm.] 
    # create log file 
    @create_template = "Log" 

    list.each do |device| 
    #call method to connect via ssh and run specific command 
    @create_template += ssh_connect(device.address, c) 
    end 

    # show process complete  
    @create_template += "Process Complete" 
end 

とここに私の更新ビュー

<p><b>SSH Connection log</b></p> 
<div class="scroll" style="width:30%"> 
<%= @create_template.html_safe %> 
</div> 

だから誰もが任意のチュートリアルの方向に私を指すか、研究に私に物事のアイデアを与えることができれば、私はそれをいただければ幸いである、またはあなたがそれを行うための方法を持っていますあなたはすでにあなたがHTTP Streamingを試してみる必要があり、Railsの3.1を使用している場合、それは素晴らしい

乾杯

マイク

答えて

0

だろう。

http://railscasts.com/episodes/266-http-streaming

そして、もちろん、あなたが各デバイスに接続した後、クライアントにログデータをストリーミングするために、あなたのコントローラーのコードを変更する必要があります。

また、deployinatorにはlog_and_streamというモジュールが付属しています。それを見てみましょう。

+0

こんにちは、私は3.0.7気圧のレールを使用していますが、私はアップグレードとログとストリームを使用するアイデアのおかげで見ることができますその周りにいくつかの調査を行います – user891380

+0

私は3.0.7を使用して私はresponse_bodyを使用してコンテンツをブラウザにストリーミングし、ほとんど動作させます。唯一の欠点は、ストリーミングがその上に出力を持つ空のページを表示するだけで、ページテンプレートが失われてしまうことです。私はそれが有望に見えて、戻って報告するので、この方法を続けます。誰も私が見つけた唯一のものを助けるかもしれない宝石のどれかを知っていますかtemplate_streamerしかしそれはRails 3.0をサポートしません – user891380

関連する問題