我们如何在Ruby-on-Rails中从名称字符串实例化类?
例如,我们在数据库中使用“ ClassName”或“ my_super_class_name”之类的格式来命名它。
我们如何从中创建对象?
解:
我自己在寻找它,但没有找到,所以在这里。 Ruby on Rails API方法
name = "ClassName"
instance = name.constantize.new
它甚至可以不格式化,我们可以使用用户字符串方法.classify
name = "my_super_class"
instance = name.classify.constantize.new
当然,这可能不是很“ Rails Way”,但它解决了它的目的。
Object.const_get
而Classify是一个ActiveSupport方法,它将字符串转换为标准类格式。您所做的与Evginey的答案相同,但还有一些其他检查。尽管常量化可能是一个更好的解决方案(因为它进行完整性检查),但它有助于了解您使用的工具。