Dir.each路径在Textmate(Ruby)中无法正常工作

时间:2015-03-15 06:45:57

标签: ruby path textmate

当我跑步时:

Dir.entries('.').each do |i|
    puts i 
end

在texmate中我从父目录中打印出来。这是为什么?

当我在IRB中运行相同的代码时,或者只是从终端运行时,我得到了正确的目录。

如何更正textmate路径?

1 个答案:

答案 0 :(得分:1)

您不应该依赖当前目录的默认设置。假设您有一个ruby文件/tmp/a.rb,内容为:

Dir.entries('.').each do |i|
    puts i 
end

您是否将执行它:

cd ~ && ruby /tmp/a.rb

它将打印/user/YOURUSERNAME的内容,因为当前目录是一个,代码是从中执行的。 Textmate可能会将其自己的当前目录设置为执行目录或从中执行。

要解决问题,请使用Dir.chdir显式设置当前目录。