获取子类的名称

Joh*_*ith 9 ruby ruby-on-rails

让我说我有班级叫

a = Person::User::Base
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到最后一个被调用的子类Base.

我知道如何做到这一点的方式是:

a.to_s.split('::').last

=> "Base" 
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Bri*_*ght 11

如果您使用Rails(ActiveSupport):

a.to_s.demodulize

如果你使用POR(普通红宝石),是的,这是你的方式:

a.to_s.split('::').last