2011-07-26 274 views
2

我想要做類似How to pass a Javascript variable to Rails Controller?的東西,但我似乎無法得到它爲我的目的工作。我使用拖放jQuery將「items」轉換爲「pod」。這裏是我的代碼:如何設置一個Rails變量等於一個JavaScript變量?

function onReceive(id,pod_id){ 
var id = id; 
var pod_id = pod_id; 
confirm("Add " +id + " to " + pod_id + "?"); 
} 

我想要做的是真的是這樣的:

function onReceive(id,pod_id){ 
<% @pod_id = pod_id %> 
<% @id = id %> 
} 

但我知道,解決的辦法是不是很容易。我如何將id和pod_id傳遞給我的控制器?理想情況下,我想將它傳遞給更新操作。 P.S:我不知道AJAX可言,因此,如果這是唯一的辦法請提供詳細資料...

+0

凡被稱爲先'的onReceive(ID,pod_id)'方法?您可以從中獲取並分配值。 – user482594

回答

6

只有這樣,才能從瀏覽器客戶端將數據傳遞給一個Rails應用程序,是通過HTTP。而要在JavaScript中執行HTTP,則使用XHR(也稱爲AJAX)。因爲你的代碼示例中暗示,因爲模板是由Rails的呈現在服務器上,並作爲evaulated HTML和JavaScript客戶端,則無法做到這一點的模板。客戶端/瀏覽器和服務器之間沒有內聯通信。

假設的jQuery:

function onReceive(id,pod_id){ 
    $.ajax({ 
     url: "/some/url", 
     data: {pod_id: pod_id, id: id} 
    }); 
} 

然後,你需要建立一個控制器到/一些/ URL響應,做任何你需要params[:pod_id]params[:id]做。

相關問題