需要Ruby中的方法



我一直在四处寻找,但似乎找不到这个问题的答案。

我需要编写一个程序,该程序将使用ruby中内置的反射方法来告诉我有关用户将指定的类的信息。

我有这样的方法:

def validFile(input)  
  filename = String.new()  
  filename = Dir.getwd + "/" + input  
  require(filename)  
end  

然而,我得到了这个错误:

internal:lib/rubygems/customrequire:29:in 'require' no such file to load --         C:UsersDavidRuby ProjectsMyTestClass.rb

我不确定为什么这不起作用,但这确实起作用:

def validFile(input)
  filename = Dir.getwd + "/MyTestClass.rb"
  require(filename)
end

这段代码对我没有帮助,因为我必须让用户指定文件。我使用gets方法来获取用户输入,并将其作为参数传递给该方法。

它们不是都是字符串吗?我在这里做错了什么?另外请注意,我正在Windows7上运行最新版本的ruby。谢谢你的帮助。

以防万一。在将gets得到的字符串作为参数传递之前,您是否对其进行了chomp处理?如果没有,那么它将在末尾包含额外的回车字符。您需要像input = gets.chomp 一样删除它们

您可以使用File.exist?(filename)查看是否存在文件或目录。这应该有助于缩小问题范围。

最有可能的情况是,您使用gets获得此输入。要么用chomp这个方法,要么用更常见的成语gets.chomp。所以你可以做这样的事情。

def do_require(input)
  require( Dir.getwd + "/" + input )
end
do_require gets.chomp

相关内容

  • 没有找到相关文章

最新更新