Convertire una stringa in un nome di classe

31 Mag 2008
Categoria: Ruby on Rails

Vi sarà sicuramente capitato in una fase di programmazione avanzata di voler convertire una semplice stringa in un nome di classe. Facciamo un esempio pratico:
Tramite una normalissima form vogliamo passare il nome di un modello come parametro ad un metodo che si occupi poi di richiamare il metodo find appropriato? niente di più semplice in pieno stile ruby ;-)

#per comodità assegno alla variabile stringa il paramentro in arrivo
stringa = params[:model]
#converto la stringa in modello e richiamo la find
stringa.camelize.constantize.find(:all)

Camelize si occupa di rendere la stringa in formato corretto: “il mio modello” diventa “IlMioModello”
Constantize invece cerca una costante con il nome corrispondente alla stringa già “cammelizzata” (cioè maiuscole/minuscole).

Di seguito i link al mio server con la documentazione relativa:

Documentazione di camelize
Documentazione di constantize

E’ tutto!

Tag: , , , ,

Lascia un Commento

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word