Sto usando Rails 3.2, ho un modulo e voglio che venga pubblicato tramite ajax e che il controller restituisca json.Modulo remoto Rails 3: come specificare il tipo di contenuto?
Sto usando un aiutante form_for in questo modo:
= form_for(@object, :remote => true, :format => :json) do |f|
....
mio controllo Crea oggetti metodo è simile al seguente:
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 sottopone ajaxly come previsto. Ma il controller sta restituendo html, non json!
Ispezionando la richiesta con firebug e l'intestazione http Content-Type sulla richiesta ajax è impostata su application/html.
La documentazione su questo argomento è piuttosto scarsa,: format =>: json sembra semplicemente aggiungere ".json" all'azione form, in realtà non modifica alcun header HTTP.
Ho anche provato: content_type =>: json a nessun effetto.
posso codice non semplicemente difficile il controller di tornare JSON in quanto vi sono altri luoghi in cui io vorrei tornare html ...
Quindi qualcuno sa come dire il controller di rendere JSON quando si utilizza form_for?
Grazie per qualsiasi aiuto
Quale URL e il metodo viene reso nel tag form nella pagina? – iltempo
Post, il tag completo è:
No JSON qui. Hai preso in considerazione l'utilizzo di request.xhr? distinguere tra richieste ajax e richieste normali invece del formato richiesto? – iltempo