2012-03-07 8 views
6

Acabo de comenzar a usar InheritedResources para una aplicación que estoy creando y cuando miré su página Github, dice que está en desuso, y que en su lugar debería usar Responders.Recursos heredados Deperecated on Rails 3 ... Respondedores

Soy nuevo en InheritedResources and Responders, así que estoy confundido, ¿cómo puedo obtener de Responders lo que obtengo en InheritedResources (código completo de "plantilla" de REST actions base) cuando todo lo que veo en la documentación son FlashResponders y HTTPCacheResponders?

También he echado un vistazo a éste:

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

por lo que quiere decir que no "código de la plantilla RESTO" más para mí?

Respuesta

10

La combinación de respond_with (que está integrada en Rails) junto con la gema responders hace que InheritedResources se desaproveche.

Por favor, eche un vistazo a this blog post para una excelente explicación y demostración de cómo crear un controlador RESTful usando respond_with. La mayoría de las acciones del controlador se reducen a líneas únicas de código; con InheritedResources que era posible tener un controlador sin código (ya que estaba escondido en la gema), pero José Valim (creador de InheritedResources) pensó que esto era demasiado ofuscado según su cotización:

"Tengo descubrió que la abstracción del respondedor y los generadores de Rails personalizados ofrecen el equilibrio perfecto entre ocultarse y mostrar demasiada lógica ".

El responders entra en juego si desea automatizar cualquier otra parte de la acción del controlador, por ejemplo, configurar los mensajes de flash.


ACTUALIZACIÓN: Para el autor del comentario a continuación que le preguntó acerca de la acción destroy

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

qué pasa: destruir? – fringd

+0

@fringd Agregué un fragmento de código arriba. ¡Espero que ayude! –

+0

La gema respondedores proporciona FlashResponder que establecerá los mensajes flash apropiados para crear, actualizar y destruir. @fringd – graywh

Cuestiones relacionadas