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

Lee*_*Lee 5 ajax jquery ruby-on-rails

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

$.ajax({
 type: 'POST',
 url: '/users/create/',
 data: "screen_name=<%=@user.screen_name%>",
 success: createSuccessHandler,
 error: createErrorHandler,
 complete: hideLoadingImage
});
Run Code Online (Sandbox Code Playgroud)

目前,该行动的回应是:

respond_to do |format|
  format.js  { render :text => @user}
  format.html { redirect_to @user }
end
Run Code Online (Sandbox Code Playgroud)

create动作工作正常,但如何在我的success方法中获取返回值(数据),这样我可以做这样的事情?

function createSuccessHandler(data) {

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

}
Run Code Online (Sandbox Code Playgroud)

基本上我试图将数据分成不同的变量.

cam*_*cam 4

在控制器中返回 json(例如,添加一format.json节并请求该节而不是 .js 一节)。然后在你的createSuccessHandler函数中你会做类似的事情:

var foo = eval(data);
$("#div1").append(foo.value1); 
$("#div2").append(foo.value2); 
Run Code Online (Sandbox Code Playgroud)

请注意,某些 javascript 库(如 jQuery)提供了比使用更安全的方法来处理 json eval,请随意使用这些方法。