Reputation: 14691
u=User.find(:first)
u.to_s
=> "#<User:0x9b017ac>"
how can i output User
this class string
Upvotes: 2
Views: 1549
Reputation: 795
The most "right" way from Ruby documentation is to use u.class.name Updated: the answer - u.name.to_s that was selected as correct - not right, cause:
for example:
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"
Upvotes: 8
Reputation: 1844
If you want to get the class name, try:
u.class.to_s
Edit:
As Sergey pointed out in his answer it is better to use
u.class.name
I believe that is because to_s
could be overwritten and it could possibly return a different string that the one returned by name
.
Upvotes: 7