Sto solo chiedendo come rotaie conosce il formato della richiesta per entrare in modo corretto nella famosa:In che modo i binari determinano il formato della richiesta in entrata?
respond_to do |format|
format.html
format.xml
format.json
end
A titolo di esempio si consideri questa situazione che ho affrontato. Supponiamo che tramite JavaScript (utilizzando jQuery) faccio una richiesta POST esplicitando dataType: json
$.ajax({
type: 'POST',
url: 'example.com',
data: data,
dataType: 'json'
});
Quando questa richiesta azione di controllo portata, in piedi al suo interno con il debugger rubino, ho ispezionare @ request.format e posso vedere quel tipo di contenuto è application/json. Quindi il controller risponde al formato JSON come previsto.
Ma sono confuso con il simbolo del formato specificato nelle rotte. Supponiamo che venga fatta una richiesta a example.com/parts.json ma nella richiesta il tipo di contenuto è application/html o application/xml. Il controller risponde al formato json o html o xml ??
Grazie!
Grazie! Ma non riesco già a capire cosa significhi: il simbolo di formato che appare in routes.rb per esempio. Perché se invio una richiesta al mio server (per esempio GET /entities.xml) e nel mio controller ho un gestore di risposta xml, l'intestazione accept dice application/XML in google chrome inspector. C'è qualcosa nel mezzo che non ho ancora capito. Rack è quello che vede .xml nell'URL e in base a questo costruisce l'APPROVAZIONE appropriata con le intestazioni accettabili? Grazie ancora! – flyer88
Fondamentalmente il: xml è uno dei tipi mime registrati qui https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/mime_types.rb Ecco dove si collega il tipo mime con : simbolo di formato. Questo simbolo è usato per chiamare il renderer appropriato, che è registrato con ActionController :: Renderers. – mikewilliamson