0

私はかなり新しい Web 開発者であり、Rails アプリケーションのすべての部分がどのように相互作用するかについて頭を悩ませています。私はレール3.2を使用しています

基本的に、私がやりたいことは、一意にフォーマットされたデータを含むリモート Web サイトから応答を取得することです。次に、このデータを解析して重要な部分を抽出する必要があります。次に、これらの部分を使用してページのパーシャルを生成する必要があります。

私が使用したコントローラーでは:

require 'net/http'
@result = Net::HTTP.get(URI.parse("http://remote.website.toget.data"));

その後、パーシャルが生成されずにページが最初にレンダリングされます。この後、スクリプト タグを使用して @result を必要なデータを含む配列に解析します。

var myData='<%= @result %>';
var myDataCleaned = myData.replace(/%20/g, " ");
while(gameTeams = regexGameTeams.exec(myDataCleaned)){
myTeams[count] = new Array();
myTeams[count][0] = gameTeams[1];
myTeams[count][1] = gameTeams[2];
count++;
}

今、このデータを使用してパーシャルを生成する方法について混乱しています。調査によると、<%= render 'partial' %> 呼び出しにローカルとして渡すことは不可能なので、どうすればこれを機能させることができますか? 私の推測では、これについて間違った方法で行っており、ページをレンダリングする前に何らかの方法で解析を行い、結果をコントローラーに渡す必要がありますが、それを理解できないようです。誰かが私を正しい方向に向けることができれば、それは大歓迎です!!

4

2 に答える 2

0

そうです、ruby(リモート呼び出しを行うコントローラー内)のデータを解析し、抽出されたデータからパーシャルを構築する必要があります。
データはどのような形式ですか?

の場合json、あなたはただ使うことができますparsed_data = JSON.parse(data)

ただし、形式が異なっていても、rubyを使用すると解析が比較的簡単になります。

于 2013-02-25T20:27:09.383 に答える
0

Rails/Ruby 変数へのアクセスをパーシャル内で Javascript に提供することが目標である場合、パーシャル内で次のような JS コードを出力するようにします。

some_js_var = <%= some_local_ruby_var_that_is_in_scope %>

また

some_js_var = <%= @some_instance_ruby_var_that_is_in_scope %>

サーバーにリクエストを返さないと Javascript 変数を Rails パーシャルに渡すことはできないため、サーバー上でレスポンスの解析などを行うか、何らかの理由で Javascript で解析を行う必要ある場合は、 JS 側からの JSON リクエストを処理するために、Rails 側でいくつかの JSON サービスをセットアップしますが、それは少しばかげています。

于 2013-02-25T20:37:18.477 に答える