我有一个模型源(名称,网址,方法) 该程序解析源的URL以获取数据。现在我有不同的类来解析不同类型的URL:rss,xml,ogdata ......
所以我有一个通用的界面
new(url)//解析网址
getTitle()//获取数据标题
getPrice()//获取价格
我有四个类rss,xml,ogdata。这些类是单独的文件。我的想法是在发现不同类型的页面时添加更多类。我想为网址启动正确的课程。
方法= source.method //我想创建一个在方法
中指定的名称的新类parser = Rss.new(source.url)//而不是这个 //就像是 解析器=。新(source.url)
答案 0 :(得分:0)
您可以尝试使用const_get。
例如: -
Kernel.const_get("YourClassNameHere").new
* Kernel.const_get(“YourClassNameHere”)*将为您提供课程。您可以使用它来实例化该类的新实例。
答案 1 :(得分:0)
irb(main):081:0> User.name
=> "User"
然后
"User".constantize.new(name: 'David')
or
User.name..constantize.new(name: 'David')