从嵌套在ruby中的模块中的类中获取类名

时间:2015-05-13 17:54:39

标签: ruby

如果我给你:

module Something
  module SomethingElse
    class Foo
    end
  end
end

如何获得“Foo”的班级名称?在控制台中,我有类似于示例的内容,但当我在其上.name时,它不会打印出我期望的内容。

这是我的控制台中的内容:

pry(main)> AisisWriter::Controllers::CommentsManagement::CommentsHandler.name
=> "AisisWriter::Controllers::CommentsManagement::CommentsHandler"

我期待的只是“CommentsHandler”

3 个答案:

答案 0 :(得分:5)

你可以这样做:

AisisWriter::Controllers::CommentsManagement::CommentsHandler.name.split('::').last || ''

答案 1 :(得分:1)

如果您包含ActiveSupport,请尝试使用demodulize方法

http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html

答案 2 :(得分:0)

这很简单。

AisisWriter::Controllers::CommentsManagement::CommentsHandler.name.split(':').last