最近有個需求,需要根據一個字符串當作一個類來使用,例如:
有一個字符串 “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
您可能感興趣的文章:- ruby 學習筆記(2) 類的基本使用
- ruby 標準類型總結
- Ruby字符串、條件、循環、數組、Hash、類基本操作筆記
- ruby 類常量 解析
- js 數組實現一個類似ruby的迭代器
- 一個簡單的Ruby可逆加密解密類
- Ruby中的Proc類及Proc的類方法Proc.new的使用解析
- Ruby類實例變量、類實例方法和類變量、類方法的區別
- Ruby面向對象編程中類與方法的基礎學習