Answers:
您想在对象的类上调用.name:
result.class.name
result.class.name.split('::').last
result.class.name.demodulize
User.name
。User.to_s
似乎也可以。
这是正确的答案,摘自Daniel Rikowski和pseidemann的评论。我厌倦了必须通过注释进行除草来找到正确的答案...
如果您使用Rails(ActiveSupport):
result.class.name.demodulize
如果您使用POR(plain-ol-Ruby):
result.class.name.split('::').last
就我而言,当我使用类似的东西时,result.class.name
我会得到类似的东西Module1::class_name
。但是如果我们只想class_name
使用
result.class.table_name.singularize
Object#class.inspect
给出的值与相同Object#class.name
,而对于ActiveRecord对象则不是这种情况。