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