Supponiamo che io ho una certa logica in un controller di base per passare informazioni al fine di costruire qualcosa come un breadcrumb:Filtro da eseguire prima del rendering ma dopo il controller?
class ContextAwareController < ApplicationController
after_filter :build_breadcrumb
def build_breadcumb
#...
end
end
voglio questo metodo build_breadcrumb per eseguire dopo la logica controller principale, ma prima la vista è resa.
Il codice sopra riportato è troppo tardi, ma un before_filter sarebbe troppo presto.
Qualcuno può suggerire un modo per farlo senza chiamare esplicitamente build_breadcumb alla fine di ciascuna delle azioni nei child controller?
Grazie
Ma questa soluzione rallenterebbe ogni rendering. – freemanoid
Ridurrebbe solo i rendering effettuati da un particolare controller. Sarebbe stato abbastanza semplice spostarlo su un controller diverso o "sub-controller" in modo che solo le azioni che hanno bisogno di breadcrumb utilizzino questa versione di 'render'. – Jon
Possiamo anche usare un Controller Concern per aggiungere selettivamente questa funzionalità http://elegantbrew.tumblr.com/post/70990048275/controller-concerns-in-rails-4 – MhdSyrwan