2017-05-18 34 views
0

想在我的method_name.js.erb從Ajax請求發送的數據。我如何提交AJAX數據.js.erb軌

它成功地發送請求,但問題是,我能不能得到AJAX發送

數據。

實際Ajax代碼:

var a = 1; 
$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

method_name.js.erb代碼:

var_is = var #I want var value here 
$('#dialog').modal("show"); 

阿賈克斯鏈接:

Started GET "/admin/method_name?var=1&_=1495145400545" for 127.0.0.1 at 
2017-05-19 03:12:23 +0500 

任何方式我可以在.js.erb獲得ajax數據?

回答

1
$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

將創建一個請求/admin/method_name/?var="foo"

您可以通過params[:var]獲得var param在您的Rails應用中的值 - 就像其他任何參數一樣。

+0

有沒有辦法,我能接受這一切數據,以我的'method_name.js.erb'什麼辦法?從控制器或其他任何方式請解釋?我知道你說的這個意思,但我正在用一種獨特的方式來處理它。我的邏輯可能是錯的。 – LearningROR

+1

也許你應該通過學習軌道的基礎知識,你嘗試解決AJAX之前啓動? params散列是你如何訪問傳入的參數。有沒有真正的辦法,我可以解釋這個給你,如果你甚至不掌握基本的concepts.http://guides.rubyonrails.org/getting_started.html – max

+0

那麼客氣,你是不是讓我什麼我想再說一遍,甚至有問題。簡單的答案可能不是一個可能性或任何其他好的答案。謝謝。 – LearningROR

1

鑑於此代碼:

$.ajax({ 
    type: 'GET', 
    url: "/admin/method_name/", 
    dataType : 'script', 
    data: {var: a} 
}); 

您可以訪問你的控制器動作題爲var這樣的帕拉姆:

def method_name 
    @var = params[:var] 
end 

現在,當軌呈現您method_name.js.erb文件,您將有機會獲得來自控制器的@var參數。

使用@variable_name語法,軌道將變量從控制器傳遞到視圖的方式與軌道將變量傳遞給js.erb文件的方式完全相同。

要確認一切正常,寫在你的method_name.js.erb文件中的以下內容:

console.log("<%= j @var %>"); 

如果你打開你的瀏覽器登錄,你應該看到您通過AJAX傳遞到控制器a參數的值請求。

有關軌道和Ajax的更多信息,你可以read the documentation here.

+0

1+爲很好解釋的答案。已經完成了。謝謝。 :) – LearningROR