Ruby: Создание функции "attr_accessor:arg1,:arg2,:arg3"
Поэтому я хочу иметь возможность определять класс следующим образом:
class MyHouse < Home
things :bed, :lamp, :chair
end
Где Home заботится о размещении этих "вещей" в массиве, например так:
class Home
attr_accessor :things
def things(*things)
@things = []
things.each { |thing| @things << thing }
end
end
Проблема с этим я получаю:
NoMethodError: undefined method `things' for MyHouse:Class
Я знаю, что есть способ сделать это. Помощь оценена,
Спасибо,
Pachun
1 ответ
Решение
def things
должно быть def self.things
Это делает его методом класса, а не методом экземпляра.