如何从返回的jQuery Ajax数据中获取Rails变量?

5

我有一个来自Rails应用程序页面的Ajax请求,如下所示:

$.ajax({
 type: 'POST',
 url: '/users/create/',
 data: "screen_name=<%=@user.screen_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); 

}

基本上我正在尝试将数据分成不同的变量。

你尝试过使用render :text => @user.to_json吗? - apneadiving
1个回答

4

在你的控制器中返回json(例如,添加一个format.json代码块并请求它而不是.js)。然后在你的createSuccessHandler函数中,你需要做如下操作:

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

请注意,一些JavaScript库(如jQuery)提供比使用eval更安全的处理JSON的方式,可以自由地使用它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接