Supongamos que tengo un poco de lógica en un controlador de base para pasar información a la vista para construir algo así como una ruta de navegación:¿Filtro para ejecutar antes del renderizado pero después del controlador?
class ContextAwareController < ApplicationController
after_filter :build_breadcrumb
def build_breadcumb
#...
end
end
Quiero que este método build_breadcrumb para ejecutar después la lógica principal del controlador, pero antes la vista es renderizada
El código anterior se ejecuta demasiado tarde, pero un before_filter sería demasiado temprano.
¿Alguien puede sugerir una forma de lograr esto sin llamar explícitamente a build_breadcumb al final de cada una de las acciones en los controladores secundarios?
Gracias
Pero esta solución ralentizaría cada renderizado. – freemanoid
Solo ralentizaría los renders hechos desde un controlador en particular. Sería bastante fácil mover esto a un controlador diferente o "sub-controlador" para que solo las acciones que necesitan migas de pan usen esta versión de 'render'. – Jon
También podemos usar una preocupación del controlador para agregar esta funcionalidad selectivamente http://elegantbrew.tumblr.com/post/70990048275/controller-concerns-in-rails-4 – MhdSyrwan