2013-02-25 80 views
0

我是一個相當新的Web開發人員,並且有一些問題圍繞着Rails應用程序的所有部分如何交互。我正在使用rails 3.2Javascript和Rails的交互

基本上,我希望做的是從遠程網站檢索包含一些格式獨特的數據的響應。然後需要解析這些數據以提取重要的部分,然後這些部分需要用於在我的頁面上生成部分。

在控制器我已經使用:

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++; 
} 

現在我很困惑,我該如何使用這些數據來生成我的諧音。研究表明,將它作爲本地傳遞給<%=呈現'partial'%>呼叫是不可能的,那麼我該如何去做這項工作?我的猜測是,我對這種方式做了錯誤的處理,需要在渲染頁面之前完成解析,然後通過控制器傳遞結果,但我似乎無法弄清楚。如果任何人都可以指出我正確的方向,將不勝感激!

回答

0

你是對的,你應該在ruby中(在進行遠程調用的控制器中)解析數據,並從提取的數據中構建你的部分。
數據的格式是什麼?

萬一

json,你可以只使用parsed_data = JSON.parse(data)

但即使是在不同的格式,紅寶石使得解析相對容易。

+0

這更有意義!可悲的是,數據只是一串文本,但我已經有了正則表達式來提取我需要的東西,我只需要將它們調整爲ruby即可。謝謝!附:一旦我確認了這個按預期工作,我會選擇你的接受答案! – 2013-02-25 20:47:39

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 ñ你會在Rails端設置一些JSON服務來處理來自JS端的JSON請求,但那會有點愚蠢。

+0

我想你可能誤解了我的(可能很差的)描述。由於我從腳本標記中調用<%= render'partial%>,所以我無法找到傳遞變量的方法。我知道我可以將它們從控制器中傳遞出去,但由於我已經在視圖中,我不認爲這是可能的。無論如何感謝您的迴應! – 2013-02-25 20:50:06

+0

更新了我的答案。感謝您的澄清 - 認爲您的問題不符合問題標題... :) – 2013-02-25 20:57:03