2012-03-11 13 views
8

Decir que tengo el nombre del modelo guardado en una variable:cómo llamar a un método de clase de forma dinámica en rubí

"#{class_name.singularize}" 

desde otro controlador Quiero ver las columnas definidas para este modelo. Probé

send("#{class_name.singularize}.columns") 

pero su tratando de llamar Page.columns como un método de la clase actualmente estoy trabajando en el lugar de la clase Page. ¿Alguna idea sobre cómo hacer esto?

Respuesta

13

Uso constantize:

class_name.singularize.constantize.columns 
+0

método no definido 'constanstize' para "Página": String (NoMethodError) –

+0

@j_mcnally Porque no puedo escribir, que es' constantize'. Respuesta actualizada –

+0

¡impresionante! muchas gracias, no tenía idea de que esto podría hacerse, ¡OSCILAS! –

Cuestiones relacionadas