Я использую Rails 3.2, у меня есть форма, и я хочу, чтобы она была отправлена через ajax и вернул контроллер json.
Я использую form_for helper, например:
= form_for(@object, :remote => true, :format => :json) do |f|
....
Мой метод создания контроллера объектов выглядит следующим образом:
def create
respond_to do |format|
if @object.save
format.html { redirect_to @object }
format.json { render json: @object, status: :created, location: @object }
else
format.html { render action: "new" }
format.json { render json: @object.errors, status: :unprocessable_entity }
end
end
end
Форма отправляет ajaxly, как ожидалось. Но контроллер возвращает html, а не json!
Проверка запроса с помощью firebug и достаточно уверен, что заголовок http-типа Content-Type для ajax-запроса устанавливается в application/html.
Документация вокруг этого довольно редкая: format = > : json, кажется, просто добавляет ".json" к действию форм, а не фактически модифицирует любые заголовки http.
Я также пробовал: content_type = > : json без эффекта.
Я не могу просто запрограммировать контроллер для возврата json, поскольку есть другие места, где я хочу, чтобы он возвращал html...
Итак, кто-нибудь знает, как сообщить контроллеру отобразить json при использовании form_for?
Спасибо за любую помощь