Salve a tutti,
sto cercando se esiste un metodo in Rails per enumerare i controllers
presenti nella applicazione. In pratica devo predisporre una specie di
RBAC con una interfaccina di amministrazione, per limitare ad alcuni
utenti l’uso di determinati controller. Oltre al codice di convalida
della
RBAC ho scritto un modulino da includere nei controller da “proteggere”
che mi espone dei metodi per dirmi se il controller è sottoposto a RBAC,
il nome dell’applicazione che gestisce (per questo progetto ho assunto
che
controller => applicazione, ma è solo una convenzione per gli utenti) e la
versione. Solo che per l’interfaccia di gestione avrei bisogno di
enumerare i controller presenti, per ognuno chiamare il metodo che mi
ritorna i dati quindi comporre la pagina web.
questo ritornerebbe le istanze, che non penso sia
quello che si vuole.
Ho l’impressione che si crechino le sottoclassi, per
cui andrebbe forse una cosa come:
ObjectSpace.each_object(Class) {|c| @controllers << c
if c.ancestors.include?(ApplicationController)}