# \[rails\] filtri come classi esterne: dove?

**URL:** <https://www.ruby-forum.com/t/rails-filtri-come-classi-esterne-dove/130671>\
**Category:** IT\
**Created:** [March 1, 2008, 5:22pm UTC](https://www.ruby-forum.com/t/rails-filtri-come-classi-esterne-dove/130671 "2008-03-01T17:22:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [March 1, 2008, 5:22pm UTC](https://www.ruby-forum.com/t/rails-filtri-come-classi-esterne-dove/130671/1 "2008-03-01T17:22:52Z")

</div>

Ciao! Mi sto studiando “The Rails way”, gran bel libro, lo consiglio.

Comunque, in questo libro si parla anche di come costruire classi-filtro  
esterne.

Ora: dov’Ã¨ il posto migliore per piazzare ste classi-filtro? Io ho  
provato nel controller, prima della definizione dello stesso, e  
funziona. Ma Ã¨ il posto + giusto? Ad esempio ho notato che nel corpo del  
filtro, il logger non funziona +.

Es. del codice contenuto in checkvars\_controller.rb:

#classe-filtro

class TestFilter  
def self.filter(controller)  
#i logger non sono disponibili nei filtri esterni  
controller.test\_ext\_filter  
end  
end

#controller

class CheckvarsController \< ApplicationController

#esercizi sui filtri

before\_filter :prima, TestFilter, :only =\> :instance\_vars  
after\_filter :dopo

def instance\_vars  
@var1 = ‘luca’  
end

def test\_filter\_condition  
logger.info “no before filter”  
end

#vedi TestFilter  
def test\_ext\_filter  
@ext\_filter = ‘TestFilter’  
end

#i filtri meglio farli privati  
private

def prima  
logger.info “eseguo prima”  
end

def dopo  
logger.info “eseguo dopo”  
end

end

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [March 1, 2008, 5:35pm UTC](https://www.ruby-forum.com/t/rails-filtri-come-classi-esterne-dove/130671/2 "2008-03-01T17:35:08Z")

</div>

Luca R. wrote:

> Ciao! Mi sto studiando “The Rails way”, gran bel libro, lo consiglio.
> 
> Comunque, in questo libro si parla anche di come costruire classi-filtro  
> esterne.
> 
> Ora: dov’Ã¨ il posto migliore per piazzare ste classi-filtro?

le puoi mettere in un plugin, oppure in una directory qualsiasi nel tree  
della tua applicazione (devi solo avere cura di fare l’include della dua  
directory quando fa il boot dicendoglielo in environment.rb o in un  
inizializer).  
Comunque, secondo me, se quella classe filtro viene usata solo in quel  
controller, io la metterei proprio nel controller.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [March 1, 2008, 5:57pm UTC](https://www.ruby-forum.com/t/rails-filtri-come-classi-esterne-dove/130671/3 "2008-03-01T17:57:31Z")

</div>

Grande! Grazie mille! 🙂

S2 Akira wrote:

> Luca R. wrote:
> 
> > Ciao! Mi sto studiando “The Rails way”, gran bel libro, lo consiglio.
> > 
> > Comunque, in questo libro si parla anche di come costruire classi-filtro  
> > esterne.
> > 
> > Ora: dov’Ã¨ il posto migliore per piazzare ste classi-filtro?
> 
> le puoi mettere in un plugin, oppure in una directory qualsiasi nel tree  
> della tua applicazione (devi solo avere cura di fare l’include della dua  
> directory quando fa il boot dicendoglielo in environment.rb o in un  
> inizializer).  
> Comunque, secondo me, se quella classe filtro viene usata solo in quel  
> controller, io la metterei proprio nel controller.
