Ruby:创建" attr_accessor:arg1,:arg2,:arg3"功能

时间:2013-01-01 20:22:58

标签: ruby metaprogramming attr-accessor

所以我希望能够定义这样的类:

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 个答案:

答案 0 :(得分:3)

def things应为def self.things

这使它成为一个类方法而不是实例方法。