这是一个类.
module Foo
class Bar
end
end
Run Code Online (Sandbox Code Playgroud)
我希望得到Bar没有的班级名称Foo.
bar = Foo::Bar.new
bar.class.to_s.match('::(.+)$'){ $1 }
Run Code Online (Sandbox Code Playgroud)
我可以通过这段代码得到类名,但我不认为这是获得它的最佳方法.
是否有更好的方法来获取没有命名空间的类的名称?
Uel*_*elb 66
如果您正在使用Rails,您实际上可以demodulize在String类上使用该方法.
http://apidock.com/rails/String/demodulize
bar.class.name.demodulize
Run Code Online (Sandbox Code Playgroud)
Tod*_*obs 16
执行此操作的规范方法是调用Object#类和Module#name.例如:
bar.class.name.split('::').last
#=> "Bar"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7602 次 |
| 最近记录: |