UJS-подобный ответ AJAX в Rails 3 - PullRequest
1 голос
/ 17 июня 2011

Rails 3 использует подход UJS, который позволяет обрабатывать ответы AJAX из кода JavaScript.

$("form").live("ajax:success", function(data, status, xhr){
    $(".target").html(data.myHTML);
});

Как должно выглядеть представление в Rails 3 для заполнения объекта «данные», чтобы я мог проверить это из JavaScript?

Регулярный рендеринг с использованием "js.erb" или "js.haml" приводит к локальной переменной "data" data в JavaScript "undefined".

Конечно, в представлении я могу использовать некоторую глобальную переменную, например, следующую ("js.haml"):

- c = escape_javascript(render "search_result")
:plain
  var ajaxResponse = "#{c}";

… И вызвать его из обработчика JavaScript, например:

$("form").live("ajax:success", function(data, status, xhr){
    $(".target").html(ajaxResponse);
});

… но это нарушает инкапсуляцию.

В идеале можно использовать локальную переменную data.

Итак, как должен выглядеть вид?

...