最近有個需求,需要根據(jù)一個字符串當(dāng)作一個類來使用,例如:
有一個字符串 “ChinaMag”,根據(jù)這個字符串調(diào)用 類 ChinaMag下的方法。
解決辦法:
1.rails可以使用 constantize方法。
復(fù)制代碼 代碼如下:
pry(main)> 'ChinaMag'.constantize
=> ChinaMag
pry(main)> "Test::Unit".constantize
=> Test::Unit
2.ruby可以使用 Object.const_get(“String”)。
復(fù)制代碼 代碼如下:
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 學(xué)習(xí)筆記(2) 類的基本使用
- ruby 標(biāo)準(zhǔn)類型總結(jié)
- Ruby字符串、條件、循環(huán)、數(shù)組、Hash、類基本操作筆記
- ruby 類常量 解析
- js 數(shù)組實現(xiàn)一個類似ruby的迭代器
- 一個簡單的Ruby可逆加密解密類
- Ruby中的Proc類及Proc的類方法Proc.new的使用解析
- Ruby類實例變量、類實例方法和類變量、類方法的區(qū)別
- Ruby面向?qū)ο缶幊讨蓄惻c方法的基礎(chǔ)學(xué)習(xí)