rails attr_accessor

rails attr_accessor

В  ООП есть понятие getter и setter методы для доступа к переменной внутри объекта. В Ruby мы может сделать нечто подобное

class Car
  def initialize(color)
    @color = color
  end
    
  # getter
  def color
    @color
  end
    
  # setter
  def color=(value)
   	@color = value
  end
end

attr_accessor - это короткая запись данного для опредления

class Car
  # определение методов для получения и установки значения @color
  attr_accessor :color
    
  def initialize(color)
    @color = color
  end  
end

car = Car.new('red')
car.color = 'green'
puts car.color

Если необходимо ограничиться только чтением get или только установкой set, то используем attr_reader и attr_writer

class Car
  # getter car.color
  attr_reader :age
  ...
end

class Car 
  # setter, car.color=
  attr_writer :color
end

Можно определить сразу несколько методов

class Car
	attr_reader :age, :color, :sold?
end