Ruby 2.4.1 Dir.children(dirname)为Dir返回“未定义的方法`children':Class”

时间:2017-08-16 17:02:44

标签: ruby

我是Ruby的新手,并试图学习它。我正在使用最新的Ruby版本(2.4.1)和交互式Ruby Shell。

我在children课程中遇到了Dir方法。我试过了from the documentation示例:

Dir.children("testdir")   #=> ["config.h", "main.rb"]

但它似乎不起作用,因为我收到以下消息:

undefined method `children' for Dir:Class

我错过了什么?

1 个答案:

答案 0 :(得分:13)

这似乎是某种文档混乱。

Dir.children方法随Feature #11302一起引入到Ruby中,并且committed to trunk最终随Ruby 2.5.0一起发布。但是,由于dir.c of Ruby 2.4.1未提及该方法,因此添加此方法的补丁似乎并未实际向后移植到Ruby 2.4。目前还不清楚为什么此方法的文档出现在http://ruby-doc.org/

无论如何,看来你对这种方法运气不佳。但是,您可以在Ruby版本中使用以下等效代码:

Dir.entries('testdir') - [".", ".."]

它将在Ruby 2.5及更新版本中返回与Dir.children('testdir')完全相同的值。