mlz*_*boy 2 ruby ruby-on-rails
u=User.find(:first)
u.to_s
=> "#<User:0x9b017ac>"
Run Code Online (Sandbox Code Playgroud)
我User该如何输出这个类字符串
Ruby文档中最"正确"的方法是使用u.class.name更新:答案 - 选择为正确的u.name.to_s - 不对,原因:
例如:
class A
def self.to_s
"BBB"
end
end
ruby-1.8.7-p302 > a.class.to_s
=> "BBB"
ruby-1.8.7-p302 > a.class.name
=> "A"
Run Code Online (Sandbox Code Playgroud)
如果要获取类名,请尝试:
u.class.to_s
Run Code Online (Sandbox Code Playgroud)
编辑:
正如谢尔盖在他的回答中指出的那样,最好使用
u.class.name
Run Code Online (Sandbox Code Playgroud)
我相信这是因为to_s可能被覆盖,它可能会返回一个返回的字符串name.