红宝石在100分钟内good_morning方法问题

时间:2013-06-26 22:10:20

标签: ruby constants irb initialization

我在JumpStart实验室网站上用100分钟做了Ruby,在第5部分遇到了问题。

我被要求创建一个good_morning方法,打印出一个问候语,例如“Happy Monday,这是2013年的130天”。这是我目前的计划:

class PersonalChef

    def good_morning

        today = Date.today.strftime("%A")
        day_of_year = Date.today.yday
        puts "Happy#{today}! It is the #{day_of_year} day of year."
        return self
            end

    def make_toast(color)
        puts " Making your toast #{color}!"
        return self
       end
    def make_milkshake(flavor)
        puts " Making a #{flavor} milkshake!"
        return self
       end

    def make_eggs(quantity)
        puts " Making you #{quantity} eggs!"
        return self
            end 
            end

当我尝试在irb('personal_chef.rb',frank = PersonalChef.new,frank.make_milkshake('chocolate')等上运行程序加载时,一切正常,直到我尝试输入frank.good_morning到irb ,它给出以下错误消息:

NameError: **uninitialized constant** PersonalChef :: Date 
     from personal_chef.rb:5: in good_morning from (irb):3 from /bin/irb:12:in '<main>'

非常感谢帮助我解决此问题的任何帮助或信息。 谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

错误是因为您没有要求'日期'库。因此,当您的代码执行good_morning方法时,它不知道Ruby的Date类。因此,在该范围内,它试图找到一个也不存在的PersonalChef :: Date类。

将以下内容添加到文件顶部,它应该可以工作:

require 'date'