2
 u=User.find(:first)
 u.to_s
 => "#<User:0x9b017ac>"

how can i output User this class string

3 Answers 3

8

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" 
Sign up to request clarification or add additional context in comments.

Comments

7

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.

Comments

0

Try u.inspect and see if any of that info fits your needs.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.