Bird
Raised Fist0
Rubyprogramming~5 mins

Constants in classes in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a constant in a Ruby class?
A constant in a Ruby class is a value that is meant to stay the same throughout the program. It is written with a name starting with a capital letter and usually holds data that should not change.
Click to reveal answer
beginner
How do you define a constant inside a Ruby class?
You define a constant inside a Ruby class by writing the constant name starting with a capital letter, followed by an equal sign and the value. For example: <pre>class MyClass
  MY_CONSTANT = 10
end</pre>
Click to reveal answer
intermediate
Can you change the value of a constant in Ruby after it is set?
Technically, you can change a constant's value in Ruby, but it will give a warning because constants are meant to stay the same. Changing them is not recommended.
Click to reveal answer
beginner
How do you access a constant defined inside a Ruby class from outside the class?
You access a constant from outside the class by using the scope resolution operator :: with the class name. For example: <pre>MyClass::MY_CONSTANT</pre>
Click to reveal answer
intermediate
What happens if you define a constant with the same name in a subclass in Ruby?
If a subclass defines a constant with the same name as in its parent class, the subclass's constant will override the parent's constant when accessed from the subclass.
Click to reveal answer
How do you write a constant name in Ruby?
AStarts with a lowercase letter
BStarts with a number
CStarts with an underscore
DStarts with a capital letter
How do you access a constant MY_CONST inside class MyClass from outside?
AMyClass::MY_CONST
BMyClass.MY_CONST
CMyClass->MY_CONST
DMY_CONST.MyClass
What happens if you change a constant's value in Ruby?
ARuby deletes the constant
BRuby throws an error and stops
CRuby allows it but shows a warning
DRuby ignores the change silently
Where should constants be defined in Ruby?
AOnly inside methods
BInside classes or modules
COnly in global scope
DInside local variables
If a subclass defines a constant with the same name as its parent, which one is used inside the subclass?
AThe subclass's constant
BThe parent's constant
CBoth constants are merged
DAn error occurs
Explain how to define and access constants inside Ruby classes.
Think about how you write constants and how you get their values from outside.
You got /4 concepts.
    Describe what happens when you try to change a constant's value in Ruby and why it matters.
    Consider Ruby's behavior and why constants exist.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is true about constants in Ruby classes?
      easy
      A. Constants start with a lowercase letter.
      B. Constants can be changed anytime like variables.
      C. Constants start with a capital letter and are defined outside methods.
      D. Constants must be defined inside methods only.

      Solution

      1. Step 1: Understand constant naming rules

        In Ruby, constants always start with a capital letter and are usually defined outside methods within classes or modules.
      2. Step 2: Check where constants are defined

        Constants are not meant to be changed and are not defined inside methods but at the class/module level.
      3. Final Answer:

        Constants start with a capital letter and are defined outside methods. -> Option C
      4. Quick Check:

        Constants = Capital letter + outside methods [OK]
      Hint: Constants start uppercase and live outside methods [OK]
      Common Mistakes:
      • Thinking constants can be changed like variables
      • Defining constants inside methods
      • Using lowercase letters for constants
      2. Which of the following is the correct way to define a constant inside a Ruby class?
      easy
      A. class MyClass def PI = 3.14 end
      B. class MyClass PI = 3.14 end
      C. class MyClass pi = 3.14 end
      D. class MyClass @PI = 3.14 end

      Solution

      1. Step 1: Identify constant syntax

        Constants in Ruby start with a capital letter and are assigned directly inside the class but outside any method.
      2. Step 2: Check each option

        class MyClass PI = 3.14 end correctly assigns PI = 3.14 inside the class. class MyClass pi = 3.14 end uses lowercase (not constant). class MyClass def PI = 3.14 end tries to define a method named PI incorrectly. class MyClass @PI = 3.14 end uses an instance variable (@PI), not a constant.
      3. Final Answer:

        class MyClass PI = 3.14 end -> Option B
      4. Quick Check:

        Constants = Capital letter + direct assignment [OK]
      Hint: Constants = Capital letter + direct assignment inside class [OK]
      Common Mistakes:
      • Using lowercase names for constants
      • Defining constants inside methods
      • Confusing constants with instance variables
      3. What will be the output of this Ruby code?
      class Car
        WHEELS = 4
        def wheels
          WHEELS
        end
      end
      
      car = Car.new
      puts car.wheels
      medium
      A. 4
      B. WHEELS
      C. Error: uninitialized constant
      D. nil

      Solution

      1. Step 1: Understand constant access inside instance method

        The constant WHEELS is defined inside the class Car. Inside instance methods, constants can be accessed directly by their name.
      2. Step 2: Trace the method call

        Calling car.wheels returns the constant WHEELS value, which is 4. Then puts prints 4.
      3. Final Answer:

        4 -> Option A
      4. Quick Check:

        Constant accessed inside method = 4 [OK]
      Hint: Constants inside class accessible by name in instance methods [OK]
      Common Mistakes:
      • Expecting an error for constant access
      • Thinking constant name prints instead of value
      • Confusing constants with instance variables
      4. Identify the error in this Ruby code:
      class Book
        TITLE = "Ruby Guide"
        def change_title
          TITLE = "New Title"
        end
      end
      medium
      A. Constants must be defined inside methods.
      B. Missing end keyword for class.
      C. TITLE should be lowercase.
      D. Cannot assign to constant TITLE inside method.

      Solution

      1. Step 1: Check constant assignment rules

        Constants in Ruby should not be reassigned once set. Assigning a constant inside a method is not allowed and causes a warning or error.
      2. Step 2: Analyze the code

        The method change_title tries to assign a new value to TITLE constant, which is invalid.
      3. Final Answer:

        Cannot assign to constant TITLE inside method. -> Option D
      4. Quick Check:

        Constants cannot be reassigned inside methods [OK]
      Hint: Constants cannot be reassigned inside methods [OK]
      Common Mistakes:
      • Trying to change constants inside methods
      • Confusing constants with variables
      • Ignoring Ruby warnings about constant reassignment
      5. Given this Ruby code, what will puts Vehicle::TYPE print?
      class Vehicle
        TYPE = "Transport"
        class Car
          TYPE = "Car"
        end
      end
      
      puts Vehicle::TYPE
      hard
      A. "Transport"
      B. "Car"
      C. Error: uninitialized constant
      D. nil

      Solution

      1. Step 1: Understand constant lookup in nested classes

        Constants are scoped to the class they are defined in. Vehicle::TYPE refers to the constant TYPE inside Vehicle, not inside Vehicle::Car.
      2. Step 2: Check the code output

        Vehicle::TYPE is "Transport". The inner class Car has its own TYPE, but it is not accessed here.
      3. Final Answer:

        "Transport" -> Option A
      4. Quick Check:

        Outer class constant accessed by Vehicle::TYPE = "Transport" [OK]
      Hint: Outer class constant accessed by ClassName::CONSTANT [OK]
      Common Mistakes:
      • Confusing inner class constant with outer class constant
      • Expecting error for nested constants
      • Using wrong scope operator
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard