2011-02-10 99 views
5

我有一個網頁在我的Rails應用程序的Ajax請求,看起來像這樣:如何從我返回的jQuery Ajax數據獲取Rails變量?

$.ajax({ 
type: 'POST', 
url: '/users/create/', 
data: "screen_name=<%[email protected]_name%>", 
success: createSuccessHandler, 
error: createErrorHandler, 
complete: hideLoadingImage 
}); 

與目前的動作與此迴應:

respond_to do |format| 
    format.js { render :text => @user} 
    format.html { redirect_to @user } 
end 

的創建操作工作正常,但如何我在我的成功方法中獲得返回的值(數據),所以我可以做這樣的事情?

function createSuccessHandler(data) { 

    $("#div1").append(data.value1); 
    $("#div2").append(data.value2); 

} 

基本上我試圖將數據拆分成不同的變量。

+0

您是否嘗試使用render:text => @ user.to_json? – apneadiving 2011-02-10 22:28:54

回答

4

返回控制器中的json(例如,添加format.json節並請求而不是.js之一)。然後在你的createSuccessHandler功能,你會做這樣的事情:

var foo = eval(data); 
$("#div1").append(foo.value1); 
$("#div2").append(foo.value2); 

注意一些JavaScript庫(如jQuery)提供更安全的方式來處理JSON比使用eval,隨意使用這些替代。

+0

Json是。謝謝! – Lee 2011-02-11 00:56:43

相關問題