# RoR: Enumerare i controller presenti

**URL:** <https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919>\
**Category:** IT\
**Created:** [August 30, 2006, 10:46am UTC](https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919 "2006-08-30T10:46:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![nutsmuggler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@nutsmuggler](https://www.ruby-forum.com/u/nutsmuggler)\
**Post date:** [August 30, 2006, 10:46am UTC](https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919/1 "2006-08-30T10:46:28Z")

</div>

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.

Qualche suggerimento…?

Davide

---

<div class="post-metadata">

**Author:** ![nutsmuggler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@nutsmuggler](https://www.ruby-forum.com/u/nutsmuggler)\
**Post date:** [August 30, 2006, 12:28pm UTC](https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919/2 "2006-08-30T12:28:48Z")

</div>

Forse puoi tirarti fuori i controller con qualcosa tipo:

@controllers = []  
ObjectSpace.each\_object(ApplicationController) {|c| @controllers \<\< c}

Ma non ho provato se va 😃

On 8/30/06, Davide B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> versione. Solo che per l’interfaccia di gestione avrei bisogno di  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
Paolo D.’  
SeeSaw | Another point of view

> **[A Padova il buon software chi lo fa?](https://seesaw.it/)**
>
> A creare software sono tantissimi, a farlo molto bene c’è una certa schiera di sviluppatori, ma a costruirlo un pezzo alla volta insieme al cliente, plasmarlo sulle sue esigenze e renderlo parte di un nuovo approccio al mondo del lavoro sono davvero...

removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![nutsmuggler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@nutsmuggler](https://www.ruby-forum.com/u/nutsmuggler)\
**Post date:** [August 30, 2006, 1:20pm UTC](https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919/3 "2006-08-30T13:20:55Z")

</div>

Il 30/08/06, Davide B.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Qualche suggerimento…?

Magari è una castronata ma ci provo: se usi Class.subclasses [1] di  
ruby facets[2] sulla classe ActionController::Base [3] dovrebbe  
funzionare

PS: negli archivi c’è un post di paolo donà che ti mostra come usare  
subclasses  
(si intitola ‘FacetsTip #1: Class.subclasses’)

[1] [http://facets.rubyforge.org/api/core/classes/Class.html#M000232](http://facets.rubyforge.org/api/core/classes/Class.html#M000232)  
[2] [http://facets.rubyforge.org/](http://facets.rubyforge.org/)  
[3] [ActionController::Base](http://api.rubyonrails.org/classes/ActionController/Base.html)

–  
Michele F.  
SeeSaw | Another point of view

> **[A Padova il buon software chi lo fa?](https://seesaw.it/)**
>
> A creare software sono tantissimi, a farlo molto bene c’è una certa schiera di sviluppatori, ma a costruirlo un pezzo alla volta insieme al cliente, plasmarlo sulle sue esigenze e renderlo parte di un nuovo approccio al mondo del lavoro sono davvero...

removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![nutsmuggler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@nutsmuggler](https://www.ruby-forum.com/u/nutsmuggler)\
**Post date:** [August 30, 2006, 1:30pm UTC](https://www.ruby-forum.com/t/ror-enumerare-i-controller-presenti/66919/4 "2006-08-30T13:30:56Z")

</div>

— Paolo Donà [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Forse puoi tirarti fuori i controller con qualcosa  
> tipo:
> 
> @controllers = []  
> ObjectSpace.each\_object(ApplicationController) {|c|  
> @controllers \<\< c}
> 
> Ma non ho provato se va 😃

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)}

(o Class#subclasses in facets)

–  
icq: #69488917  
blog it: [http://riffraff.blogsome.com](http://riffraff.blogsome.com)  
blog en: [http://www.riffraff.info](http://www.riffraff.info)

[p4.vert.ukl.yahoo.com](http://p4.vert.ukl.yahoo.com) uncompressed/chunked Wed Aug 30 11:13:48 GMT 2006

* * *

Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB  
[http://mail.yahoo.it](http://mail.yahoo.it)
