1

他のSOの回答は、継承を使用してクラスを作成する方法を示していますが、別のクラスのサブクラスにする必要もあります。

class Wall
  def initialize
    # i need a Brick class here with inheritance from Stone
  end
end
4

1 に答える 1

2

次のようなものを試してください:

class Stone

end

class Wall
    def initialize
        brick = Class.new Stone
        self.class.const_set :Brick, brick
    end
end

puts 'before initialize'
p Wall.constants
p Wall::Brick.ancestors rescue nil

puts 'after initialize'
Wall.new
p Wall.constants
p Wall::Brick.ancestors

こちらのライブデモをご覧ください

于 2012-10-08T18:36:45.363 に答える