【问题标题】:Ruby Dir.exists? undefined methodRuby Dir. 存在吗?未定义的方法
【发布时间】:2013-05-06 21:57:01
【问题描述】:

我在documentation 中查看了Dir.exists? 方法,我相信我使用它是正确的,但是在每次调用时我都会遇到这个错误:

未定义的方法“存在吗?”对于 Dir:Class (NoMethodError)

我是否忽略了一些非常明显的东西?下面是相关代码。

#!/usr/bin/ruby
ARGV.each do |dir|          # Arguements are directory names.
    if !Dir.exists?(dir)
#dosomething
end
end

编辑:

使用File.directory? 而不是Dir.exists? 修复了我的程序,但没有解释这个错误。

【问题讨论】:

    标签: ruby dir nomethoderror


    【解决方案1】:

    您使用的是哪个版本的 Ruby?您提供的文档链接适用于 Ruby 2.0。 Dir.exists? 方法was not available in 1.8

    您可以使用以下命令从命令行检查您的 Ruby 版本:

    ruby -v
    

    或从 IRB 会话中检查 RUBY_VERSION 常量的值。

    如果您有兴趣在您的机器上使用更新/多个 Ruby 版本,我建议您查看 RVMrbenv

    【讨论】:

    • 刚刚检查,我在 1.8.7。好像是这个问题!谢谢!
    • 即使我使用 RVM o 安装最新的 ruby​​ $ ruby -vruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux],我仍然有同样的问题。我在 ubuntu 12.04 LTS 机器上运行。有什么想法可能导致问题吗?
    • @FMKerckhof:在您调用Dir.exists? 的脚本中,添加类似puts "Ruby version: #{RUBY_VERSION}" 的行,以确保它运行的是您使用RVM 安装的Ruby 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多