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