Dato un simbolo nelle guide, come ottengo una classe? Quindi potrei chiamare qualcosa come:: Come si converte un simbolo in una classe
give_class(:post).find(:all)
o simile.
Dato un simbolo nelle guide, come ottengo una classe? Quindi potrei chiamare qualcosa come:: Come si converte un simbolo in una classe
give_class(:post).find(:all)
o simile.
Innanzitutto, convertire in stringa.
class_name = symbol.to_s
Da lì, è necessario formattare la stringa in un nome di classe corretto utilizzando i metodi forniti da ActiveSupport's Inflector.
camelize
si trasformerà in 'my_module'
'MyModule'
classify
si trasformerà in 'my_models'
'MyModel'
camelize
è più probabile quello che si desidera, dato il vostro frammento di codice.
quindi utilizzare il metodo constantize
:
klass = class_name.constantize
Classy!
ero alla ricerca StackOverflow per questa risposta e non sono riuscito a trovarlo formulata come ero alla ricerca di esso, così ho pensato di Q & A me stesso:
La risposta sopra era corretta, ma ho acutally trovato i documenti che spiegano un po 'meglio:
Ci sono fondamentalmente due metodi:
Da ciò si chiama constantize e Viola! hai la tua classe.
Mhm. Dipende se stai per passare il nome effettivo della classe ': MyClass', o preferisci il formato': my_class'. – Matchu
Sì, è giusto. Questa è stata la parte che mi ha incitato. Soprattutto la differenza tra singolare e plurale. – dpb
Sembra che ci sia una versione aggiornata per Rails 3 http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html – christophercotton