我如何得到一个Ruby类的名字?

我如何从ActiveRecord对象获取类名?

我有:

result = User.find(1) 

我试过了:

 result.class # => User(id: integer, name: string ...) result.to_s # => #<User:0x3d07cdc>" 

我只需要类名,在一个string( User在这种情况下)。 有没有一种方法呢?

我知道这是非常基本的,但是我search了Rails和Ruby的文档,我找不到它。

你想在对象的类上调用.name :

 result.class.name 

这是从Daniel Rikowski和pseidemann的评论中提取的正确答案。 我厌倦了通过评论来寻找正确的答案…

如果您使用Rails(ActiveSupport):

 result.class.name.demodulize 

如果你使用POR(普通 – ruby):

 result.class.name.split('::').last 

result.class.to_sresult.class.name工作。