本文介绍了如何从Rails中的名称字符串实例化类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们如何在Ruby-on-Rails中从名称字符串实例化类?
例如,我们在数据库中将其名称像 ClassName或 my_super_class_name这样的格式。
For example we have it's name in database in format like "ClassName" or "my_super_class_name".
如何从中创建对象?
Solution:
我自己在寻找它,但没有找到,所以在这里。
Was looking for it myself, but not found, so here it is.Ruby-on-Rails API Method
name = "ClassName"
instance = name.constantize.new
它甚至可以不格式化,我们可以使用字符串方法 .classify
It can be even not formatted, we can user string method .classify
name = "my_super_class"
instance = name.classify.constantize.new
当然,这可能不是'Rails Way',但它解决了它的目的。
Of course maybe this is not very 'Rails way', but it solves it's purpose.
推荐答案
klass = Object.const_get "ClassName"
关于类方法
class KlassExample
def self.klass_method
puts "Hello World from Class method"
end
end
klass = Object.const_get "KlassExample"
klass.klass_method
irb(main):061:0> klass.klass_method
Hello World from Class method
这篇关于如何从Rails中的名称字符串实例化类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!