Ruby class set/get

11,474

Solution 1

def age=(age)
    @age
  end

should be

  def age=(age)
    @age = age
  end

You can also make your code beautiful by replacing get/set with attr_accessor which itself provides a getter/setter

 class Pupil
   attr_accessor :age,:name
 end

Solution 2

You forgot to set @age = age.

Share:
11,474
Selvam
Author by

Selvam

Updated on June 21, 2022

Comments

  • Selvam
    Selvam about 2 years

    What is wrong with this set/get?

    class Pupil
      def name
        @name
      end
    
      def name=(name)
        @name = name
      end
    
      def age
        @age
      end
    
      def age=(age)
        @age
      end
    end
    

    Further on the same, if there was a child class with 3 arguments, name, age, sex, would the set get method in the child for sex only. Can you please show the set/get method and initialize in the child class.