为什么Ruby';s日期类自动加载,但DateTime未加载?

为什么Ruby';s日期类自动加载,但DateTime未加载?,ruby,Ruby,使用IRB,为什么Date&Time类会自动加载,而DateTime则不会?我必须要求“date”,这对我来说没有意义,因为我认为date和DateTime都在使用标准库“date” ruby-1.9.2-p290 :001 > Date => Date ruby-1.9.2-p290 :002 > Time => Time ruby-1.9.2-p290 :003 > DateTime NameError: uninitialized constant Obj

使用IRB,为什么Date&Time类会自动加载,而DateTime则不会?我必须
要求“date”
,这对我来说没有意义,因为我认为date和DateTime都在使用标准库
“date”

ruby-1.9.2-p290 :001 > Date
 => Date
ruby-1.9.2-p290 :002 > Time
 => Time
ruby-1.9.2-p290 :003 > DateTime
NameError: uninitialized constant Object::DateTime
    from (irb):3
    from /Users/kamilski81/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :004 > require 'date'
 => true
ruby-1.9.2-p290 :005 > require 'date'
 => false
ruby-1.9.2-p290 :006 > DateTime
 => DateTime
ruby-1.9.2-p290:001>日期
=>日期
ruby-1.9.2-p290:002>时间
=>时间
ruby-1.9.2-p290:003>日期时间
NameError:未初始化的常量对象::DateTime
来自(irb):3
from/Users/kamilski81/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in`'
ruby-1.9.2-p290:004>要求“日期”
=>正确
ruby-1.9.2-p290:005>要求“日期”
=>错误
ruby-1.9.2-p290:006>日期时间
=>日期时间

出于好奇,我试着:

$ ruby -e 'puts DateTime.class'
-e:1:in `<main>': uninitialized constant Object::DateTime (NameError)
[~, kamilski81@mac]
$ ruby -e 'puts Date.class'
-e:1:in `<main>': uninitialized constant Object::Date (NameError)
$ ruby -e 'puts Time.class'
Class
$ruby-e'puts DateTime.class'
-e:1:in`:未初始化的常量对象::日期时间(NameError)
[~, kamilski81@mac]
$ruby-e'放入Date.class'
-e:1:in`:未初始化的常量对象::日期(NameError)
$ruby-e'放置时间。类'
等级

因此,我认为这是一个自动加载“日期”的irb问题。

在irb中,包括这一行:
要求“日期”
然后您将能够使用DateTime

irb(main):000:0> DateTime.class
NameError: uninitialized constant DateTime
        from (irb):0
        from /path/to/ruby/irb:12:in '(main)'
irb(main):001:0> require 'date'
=> true
irb(main):002:0> DateTime.class
=> Class

在1.9.3p125中首次使用
require'date'

初始化时为我工作
date
未自动加载。
date
从未自动加载过,您,或者更可能的是
irb
,可能加载了它,或者加载了一些东西,然后又加载了它。
date
未真正自动加载,看一看这个。请把这个附加到你原来的问题中并删除这个答案。