Estoy usando Rails 3.2, tengo un formulario y quiero que se publique a través de ajax y que el controlador devuelva json.Rails 3 forma remota: ¿Cómo especifico el tipo de contenido?
estoy usando un ayudante form_for así:
= form_for(@object, :remote => true, :format => :json) do |f|
....
Mi controlador de objetos crean método es el siguiente:
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
La forma es la presentación de ajaxly como se esperaba. ¡Pero el controlador está devolviendo html, no json!
Inspeccionando la solicitud con firebug y, por supuesto, el encabezado http Content-Type en la solicitud ajax se establece en application/html.
La documentación acerca de esto es bastante escasa, formato =>: json parece simplemente anexar ".json" a la acción de formularios, no modificar en realidad ningún encabezado http.
También he intentado: content_type =>: json sin ningún efecto.
puedo código no sólo dura el controlador para volver JSON, ya que hay otros lugares en los que sí quiero que vuelva html ...
Así que ¿alguien sabe cómo decirle al controlador para hacer JSON al utilizar form_for?
Gracias por cualquier ayuda
Lo URL y método obtiene prestados en su etiqueta del formulario en la página? – iltempo
Publicación, la etiqueta completa es:
No json aquí. ¿Consideraste usar request.xhr? para distinguir entre ajax y solicitudes normales en lugar del formato solicitado? – iltempo