在rails中给出一个符号,我如何获得一个类?所以我可以这样说:
give_class(:post).find(:all)
或类似。
答案 0 :(得分:44)
首先,转换为字符串。
class_name = symbol.to_s
从那里,您需要使用ActiveSupport's Inflector提供的方法将字符串格式化为正确的类名。
camelize
会将'my_module'
变为'MyModule'
classify
会将'my_models'
变为'MyModel'
camelize
更有可能是您想要的那个。
然后使用constantize
方法:
klass = class_name.constantize
优等!
答案 1 :(得分:4)
我正在搜索stackoverflow以获得这个答案,并且无法找到它如何找到它,所以我想我会自己问答:
上面的答案是正确的,但我在实际上找到了解释得更好的文档:
基本上有两种方法:
从那,你打电话给constantize,和Viola!你有你的班级。