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