欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ruby中实现把字符串转换为类的2种方法

程序员文章站 2022-11-14 22:19:51
最近有个需求,需要根据一个字符串当作一个类来使用,例如: 有一个字符串 “chinamag”,根据这个字符串调用 类 chinamag下的方法。 解决办法: 1.ra...

最近有个需求,需要根据一个字符串当作一个类来使用,例如:

有一个字符串 “chinamag”,根据这个字符串调用 类 chinamag下的方法。

解决办法:

1.rails可以使用 constantize方法。

复制代码 代码如下:

pry(main)> 'chinamag'.constantize
=> chinamag
pry(main)> "test::unit".constantize
=> test::unit

2.ruby可以使用 object.const_get(“string”)。

复制代码 代码如下:

pry(main)> object::const_get('chinamag')
=> chinamag
 
pry(main)> module foo
pry(main)*   class bar 
pry(main)*   end   
pry(main)* end 
=> nil
pry(main)> 'foo::bar'.split('::').inject(object) {|o,c| o.const_get c}
=> foo::bar