0

Ruby in 100 minutesウェブサイトをやっていて、パート 5 で問題が発生しました。

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')などを介してプログラムを実行すると、irb に入力しようとするまではすべて正常に動作しfrank.good_morning、次のエラー メッセージが表示されます。

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

Dateの代わりにメソッドを代用しようとしましたがTime、それでも同じ問題が発生しました。

お読みいただきありがとうございます。また、今後の有益なアドバイスをお待ちしております。この問題の解決に役立つ情報がさらにある場合は、お知らせください。

4

1 に答える 1

3

コード行

today = Time("%A")

Timeclassをメソッド呼び出しとして使用し、エラーを説明します。時刻オブジェクトから曜日名と通年日を抽出しようとしているようですが、書式文字列を に渡すTime方法ではありません。

strftimeメソッドを探しています。

例:

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

170 日目の水曜日。

于 2013-06-20T04:56:39.720 に答える