'阻止初始化'未初始化的常量Testdeck NameError(ruby)

时间:2013-07-13 15:16:05

标签: ruby

class Deck
    attr_accessor :all
    def initialize
        @all = [1,2,3]
    end
end

newdeck = Deck.new
puts newdeck.all

class Testdeck
    attr_accessor :cards

    def initialize
        @cards = []
        counter = 0
        ['H','C', 'S', 'D'].product(['2','3','4','5','6','7','8','9','10','J','K','Q','A']).each do |arr|
            @cards << Card.new(arr[0], arr[1])
        end
    end
end
zen = Testdeck.new
puts zen.cards.pop

这段代码给了我:'block in initialize'未初始化的常量Testdeck NameError

感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

此代码不知道卡是什么;您收到的错误消息不是uninitialized constant Testdeck错误,而是uninitialized constant Testdeck::Card错误,其中::表示Ruby正在查看Test类的Testdeck类(不是您需要的)把它放在那里,Ruby首先看那里。)

您需要在某处定义Card类,并使其构造函数接受字符串和整数。