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

Это делает его методом класса, а не методом экземпляра.

Другие вопросы по тегам