2011-02-10 84 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

相关问题