Ответ 1
Есть много способов ответить на это в зависимости от вашей специфики (например: вы используете jquery и адаптер UJS), но я собираюсь опубликовать материал из документа, который я использую для лучшего понимания всего процесса: Я использую этот Великий post в значительной степени: я обновлю свой ответ, поскольку в настоящее время я тоже работаю над этим материалом.
Вы можете добавить атрибут типа данных в элемент DOM следующим образом:
<%= link_to "Add a new task", new_project_task_path(@project), "data-type" => "json", :id => "add_task_btn" %>
Вы также можете определить тип данных по умолчанию в jQuery глобальной функции $.ajaxSetup(). Изменяет все запросы Ajax:
$.ajaxSetup({
dataType: 'json'
});
И третий способ заключается в обратном вызове beforeSend:
$("#add_some_button").live("ajax:beforeSend", function(e, xhr, settings){
new_data_type = "application/json, text/javascript, */*; q=0.01";
xhr.setRequestHeader('accept', new_data_type);
})
(q = 0,01 является предпочтительным между 0 и 1)
Таким образом, вы можете изменить это свойство dataType и заголовки HTTP в соответствии с вашими потребностями. Для справки здесь приведен список возможных типов MIME: Здесь
И конкретный список типов медиафайлов javascript: Здесь
Обзор формата данных, отправляемых с сервера: 1.) Ajax отправляет запрос с установленным заголовком Accept в желаемый тип MIME. 2.) Контроллер Rails проверяет заголовок Accept, чтобы определить, что он должен вернуть. 3.) Контроллер определит, обрабатывает ли действие конкретный тип MIME. В rails 3 мы можем использовать response_with, pre 3.0 его блок response_to в действии контроллера.
Обзор способов использования Ajax в Rails 3.1:
Я считаю, что предпочтительным методом является использование по умолчанию dataType как script, а затем обрабатывать запросы AJAX с помощью js.erb или файла js.coffee.
Параметры: 1.) Нажмите Событие: Вставка элементов DOM 2.) Отправка формы через Ajax 3.) Удаление через Ajax 4.) Валидация на стороне клиента с помощью Ajax (использование удаленного ввода данных в поле ввода) 5.) Добавление динамических выборок (использование удаленного ввода данных в поле выбора) 6.) Ajax Pagination - верните HTML напрямую.
Снова то, что я здесь включаю, это мой собственный план/обзор, чтобы получить подробную информацию, пожалуйста, ознакомьтесь с Андреа Сингхом, отличным сообщением здесь.