Rails.root文件路径通配符

时间:2011-06-29 14:22:09

标签: ruby-on-rails ruby file wildcard

这是我在rake任务中打开文件的代码:

  File.open(Rails.root.join("public/system/xmls/**/original/*.csv"),"r") do |file| 
  #etc

但它不匹配任何文件(有三种可能的匹配)。第一个**是一个名为2位的文件夹。我哪里错了?

1 个答案:

答案 0 :(得分:4)

join方法通常不会展开***,而是将它们作为文字放入。也许这就是问题所在。你想要的可能更像是这样:

Dir.glob(Rails.root.join("public/system/xmls/**/original/*.csv")).each do |path|
  File.open(path) do |file|
    # ...
  end
end

单独打开每个文件,你应该没事。