2012-03-07 17 views
6

Ho appena iniziato a utilizzare InheritedResources per un'applicazione che sto creando e quando ho guardato la sua pagina Github, si dice che sia deprecato e che invece dovrei usare Responders.Risorse ereditate Deperecate su Rails 3 ... Responders

Sono nuovo a InheritedResources and Responders quindi sono confuso, come posso ottenere da Responders cosa ottengo in InheritedResources (codice completo di template "template" di REST actions base) quando tutto quello che vedo dalla documentazione sono FlashResponder e HTTPCacheResponders?

ho anche dato un'occhiata a questo:

http://blog.plataformatec.com.br/tag/inherited_resources/

così vuol dire che non c'è più "codice modello REST" per me?

risposta

10

La combinazione di respond_with (che è integrata in Rails) in combinazione con la gemma responders rende InheritedResources deprecato.

Si prega di dare un'occhiata a this blog post per un'eccellente spiegazione e dimostrazione di come creare un controller RESTful usando respond_with. La maggior parte delle azioni del controller sono ridotte a singole righe di codice; con InheritedResources era possibile avere un controllo senza codice (perché è stato nascosto nella gemma), ma José Valim (creatore di InheritedResources) pensato che questo era troppo offuscato come per la sua citazione:

"Ho ho scoperto che l'astrazione dei soccorritori e i generatori di Rails personalizzati offrono il perfetto equilibrio tra nascondere e mostrare troppa logica. "

Il responders entrano in gioco se si desidera automatizzare tutte le altre parti della azione di controllo, per esempio, l'impostazione dei messaggi flash.


UPDATE: Per il commentatore di sotto che ha chiesto circa la destroy azione

def destroy 
    record = Record.find(params[:id]) 
    flash[:notice] = "The record has been destroyed successfully" if record.destroy 
    respond_with record 
end 
+0

che dire: distruggere? – fringd

+0

@fringd Ho aggiunto uno snippet di codice sopra. Spero possa aiutare! –

+0

La gemma responder fornisce FlashResponder che imposterà i messaggi flash appropriati per creare, aggiornare e distruggere. @fringd – graywh