Question: So suppose I have this (not working): 

```
class User
   description = "I am User class variable"
   def print
       puts description
   end
end

```

So, how should I use the var description, how to pass this into a method as a default parameter, or used in the method directly? Thanks..

Answer: 
In your case, the `description` is only local variable. You can change this scope using special characters `@`, `@@`, `$`:

```
a = 5
defined? a
=> "local-variable"

@a = 5
defined? @a
=> "instance-variable"

@@a = 5
defined? @@a
=> "class variable"

$a = 5
defined? $a
=> "global-variable"

```

For your purpose, I think it might be using by this way

```
class User
  def initialize(description)
    @description = description
  end

  def print
      puts @description
  end
end

obj = User.new("I am User")
obj.print
# => I am User

```
To define a class variable, use an `@@`:

```
class User
   @@description = "I am a User class variable"

   def print
       puts @@description
   end
end

```