àˆ passato qualche giorno ormai e non ricordo come l'ho scoperto, ad ogni modo poco importa.
Conoscete il metodo ActionController#respond_to? Lasciatemelo dire, è uno spettacolo!
Sul blog Raaum trovate una breve ma significativa panoramica. Sostanzialmente, il metodo fornisce indicazione su quale risposta si aspetta il client: in questo modo potete supportare differenti risposte e template con uno stesso controller.
Il blog Raaum fornisce un esempio usando una versione html o restituendo un feed, a seconda del tipo di richiesta.
def show
@monkey = Monkey.find(params[:id])
respond_to do |format|
# format.html with no block returns the default
format.html
format.xml { render :xml => @monkey.to_xml }
end
end
Ma questa non è l'unica applicazione. Ad esempio, posso verificare se la richiesta è format.js o format.html. Nel primo caso restituirà la lista degli ultimi post in html, nel secondo caso è una richiesta AJAX dunque li fornirà in JSON.
Prima di concludere, vi lascio con un ultimo dettaglio: format.all significa qualsiasi richiesta e può essere usato come condizione "else".
Se vuoi aggiornamenti su Ruby inserisci la tua email nel box qui sotto: