Как получить переменные Rails из моих возвращенных данных jQuery Ajax? - PullRequest
5 голосов
/ 11 февраля 2011

У меня есть запрос Ajax со страницы в моем приложении Rails, которая выглядит так:

$.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); 

}

В основном я пытаюсь разбить данные на разные переменные.

1 Ответ

4 голосов
/ 11 февраля 2011

Верните json в свой контроллер (например, добавьте раздел format.json и запросите его вместо .js).Затем в вашей функции createSuccessHandler вы сделаете что-то вроде:

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

Обратите внимание, что некоторые библиотеки javascript (например, jQuery) предоставляют более безопасные способы обработки json, чем использование eval, не стесняйтесь использовать их вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...