Ruby Factory方法 - 出了什么问题?

时间:2014-10-15 04:14:31

标签: ruby methods factory

所以我从youtube视频https://www.youtube.com/watch?v=V9OySOWLYIg

复制了这段代码

他在他的视频中运行它没有问题,但是当我运行它时,它给了我一个错误

C:/rails/11.rb:17:在create': Unknown hero (RuntimeError) from C:/rails/11.rb:6:in块初始化'         来自C:/rails/11.rb:6:在times' from C:/rails/11.rb:6:in初始化'         来自C:/rails/11.rb:22:new' from C:/rails/11.rb:22:in'


class Party
    attr_reader :members

    def initialize(number, occupation)
        @members = []
        number.times { members << create(occupation)}
    end
end

class PartyFactory < Party
    def create(occupation)
        if occupation == :warrior
            Warrior.new
        elseif occupation == :mage
            Mage.new
        else
            raise "Unknown hero"
        end
    end
end

party = PartyFactory.new(2, :mage)

我的另一个问题是,如果Mage.new,我做Mage.new(“fred”),为mage设置名称,“fred”部分最终会在哪里?

抱歉,我是Ruby的新手,无法找到一个工作示例来了解如何设置工厂方法。

1 个答案:

答案 0 :(得分:2)

elseif更改为elsif(不含第二个e)。

然后确保初始化MageWarrior课程,如果不这样做,则会NameError