2013-06-20 41 views
0

我在百分钟网站在做的Ruby和部分过程中遇到的问题5.红宝石在100分钟,good_morning方法

我被要求创建一个good_morning方法将打印出这样的问候如'Happy Monday, it's the 130 day of 2013'。这是我目前的计划:

class PersonalChef 
def good_morning 
    date = Time.new 
    today = Time("%A") 
    day_of_year = Time.yday 
    this_year = Time("%Y") 
    puts "Happy " + "#{today}" + "! It is the " + "#{day_of_year}" + " day of the year" + "#{this_year}" 
    return self 
end 
def make_toast(color) 
    puts "Making your toast #{color}!" 
    return self 
end 
def make_milkshake(flavor) 
    puts "Don\'t worry boss, my #{flavor} milkshake brings all the boys to the yard!" 
    return self 
end 
def make_eggs(quantity) 
    puts "Making you #{quantity} eggs sir!" 
    return self 
end 
end 

但是当我通过IRB(load 'personal_chef.rb', frank = PersonalChef.new, frank.make_milkshake('chocolate')等运行程序,一切工作正常,直到我尝试键入frank.good_morning到IRB,它提供了以下错误消息

"NoMethodError: undefined method Time' for #<PersonalChef:0x00000001b61808> from personal_chef.rb:4:in good_morning' from (irb):3 from /usr/bin/irb:12:in `'

我试过用Date的方法代替Time,仍然遇到同样的问题。

感谢您的阅读,希望对您即将提供的有用建议! e是更多有助于解决此问题的信息,请让我知道。

回答

3

的代码行

today = Time("%A") 

使用Time,所述class,作为一个方法调用,这解释了错误。我发现你正试图从一个时间对象中提取日期名称和年份,但将格式字符串传递给Time并不是做到这一点的方法。

您在寻找strftime方法。

例子:

>> today = Time.new() 
=> 2013-06-19 21:58:34 -0700 
>> today.strftime("%A") 
=> "Wednesday" 
>> today.strftime("%j") 
=> "170" 

周三,一年中的第170天。

+0

非常感谢你雷!你达'B! – user2328042