dポイントプレゼントキャンペーン実施中!

先日よりRubyでのプログラミングを始めてみたのですが
DateクラスのDate::MOTHNAMESを参照しようとしたところ
undefined method `MOTHNAMES' for Date:Class (NoMethodError)
と返ってきてしまいました。
ほかにもDate::exist?メソッドもためしてみましたが、同じ様なコメントが
返ってきました。
undefined method `exist?' for Date:Class (NoMethodError)
なお、 Date.newなどはつかえています
どういった問題でどのように解決すれば良いのか、ご教示願えればと思います。

バージョンは ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
で、Mac OSX Lionで動かしています。

A 回答 (4件)

Date::MOTHNAMESではなくて、Date.MOTHNAMESで実行されたのではないでしょうか?


MOTHNAMESはメソッドではなく定数なのでエラーになるのだと思います。

D:\>irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date::MONTHNAMES
=> [nil, "January", "February", "March", "April", "May", "June", "July", "August
", "September", "October", "November", "December"]
irb(main):003:0> Date.MONTHNAMES
NoMethodError: undefined method `MONTHNAMES' for Date:Class
from (irb):3
from D:/Ruby193/bin/irb:12:in `<main>'
irb(main):004:0> Date.constants
=> [:MONTHNAMES, :ABBR_MONTHNAMES, :DAYNAMES, :ABBR_DAYNAMES, :ITALY, :ENGLAND,
:JULIAN, :GREGORIAN, :Infinity]
irb(main):005:0> Date.methods
=> 表示省略

この回答への補足

ruby含め環境を再インストールしたら以上のように表示され、正常にうごきました。
なんだったんでしょうか・・・

皆様、ご回答ありがとうございました。

補足日時:2011/12/13 20:00
    • good
    • 0
この回答へのお礼

ご親切にありがとうございます。
しかし、Date::MOTHNAMESで実行していました。。

お礼日時:2011/12/13 19:58

多分、Dateクラスに exist? なるメソッドはない。


MONTHNAMES はある

$ irb
001:> require 'date'
=> true
002:> Date::MONTHNAMES
=> [nil, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
    • good
    • 0
この回答へのお礼

そうでしたか、なにか勘違いしてました。
ありがとうございます。

お礼日時:2011/12/13 19:57

Mac OSX Lionの環境は当方にないので、推測ですが


require 'date'
はされていますか?

この回答への補足

はい、require 'date'
をいれています。

補足日時:2011/12/13 19:56
    • good
    • 0

MONTHNAMESではなくて?


月(month)の名前(name)ですよね?

この回答への補足

あ、すみません、単に質問書くときにスペルミスしていました。MONTHNAMESでも同様の状態です。

補足日時:2011/12/12 08:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!