Dir.each 路径在 Textmate 中无法正常工作 (Ruby)
Dir.each paths not working properly in Textmate (Ruby)
当我运行:
Dir.entries('.').each do |i|
puts i
end
在 texmate 中,我从父目录中打印出来。这是为什么?
当我在 IRB 中 运行 相同的代码时,或者只是从终端我得到正确的目录。
如何更正 textmate 路径?
您不应依赖当前目录的默认设置。假设您有一个 ruby 文件 /tmp/a.rb
,其内容为:
Dir.entries('.').each do |i|
puts i
end
是否执行为:
cd ~ && ruby /tmp/a.rb
它将打印 /user/YOURUSERNAME
的内容,因为当前目录就是执行代码的目录。 Textmate 可能会设置它自己的当前目录,从哪里执行它等等。
要解决问题,请使用 Dir.chdir
明确设置当前目录。
当我运行:
Dir.entries('.').each do |i|
puts i
end
在 texmate 中,我从父目录中打印出来。这是为什么?
当我在 IRB 中 运行 相同的代码时,或者只是从终端我得到正确的目录。
如何更正 textmate 路径?
您不应依赖当前目录的默认设置。假设您有一个 ruby 文件 /tmp/a.rb
,其内容为:
Dir.entries('.').each do |i|
puts i
end
是否执行为:
cd ~ && ruby /tmp/a.rb
它将打印 /user/YOURUSERNAME
的内容,因为当前目录就是执行代码的目录。 Textmate 可能会设置它自己的当前目录,从哪里执行它等等。
要解决问题,请使用 Dir.chdir
明确设置当前目录。