2015-06-26 33 views
0

我想分配JavaScript變量通過Ajax請求紅寶石變量,所以我在JavaScript函數寫下面的代碼:如何使用AJAX請求將JavaScript變量分配給ruby變量?

var timezone = jstz.determine(); 
var encoded = encodeURIComponent('<%= groups_path%>'+'[email protected]=' + <%[email protected]%>+'&time_zone='+timezone.name()); 
    $.ajax({ 
      type: "get", 
      url: encoded, 
      dataType: "JSON", 
      success: function(data) 
      { 
      <%[email protected]=params[:time_zone]%> 
      } 
     }); 

但它給GET http://0.0.0.0:3001/%2Fgroups%3F%40myActivity%3D1%26time_zone%3DAsia%2FCalcutta 404 (Not Found)錯誤。

回答

0

Puja,

你在做錯事,你對JavaScript語言和Ruby語言沒有很好的理解。

當你會看到瀏覽器的JS代碼,那麼你會看到類似下面

$.ajax({ 
      type: "get", 
      url: encoded, 
      dataType: "JSON", 
      success: function(data) 
      { 
      } 
     }); 

因爲<%[email protected]=params[:time_zone]%>它是Ruby代碼,將呈現HTML頁面瀏覽器之前運行,那麼就會有靜態的JS和HTML腳本將呈現給瀏覽器

首先嚐試瞭解Ruby和Javascript和HTMl的流程,然後您可以更好地低估

0

你把事情弄混了。

您嘗試運行的JavaScript,因此我假設,將運行在客戶端。你在那裏沒有Ruby,只有在服務器端。

你通常會做的是,你編寫Javascript,然後在你的視圖中呈現(這意味着它被髮送到客戶端)。 您可以通過將它們命名爲my_client_side_code將預定義的值(如路徑)插入到您的模板中。 js.erb

當您向服務器發出AJAX請求時,可以從服務器向客戶端寫入響應(使用Javascript)。 這使客戶端評估您在服務器響應中提供的任何Javascript。在這種情況下,您可以以通常的ERB方式使用Ruby變量。

http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html 有關完整指南,您可以參考導軌指南!

祝你好運!