2011-06-29 20 views
5

Oto mój kod w zadaniu nachylenia, aby otworzyć plik:Rails.root filepath symboli wieloznacznych

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

ale nie jest to dopasowanie dowolnego pliku (Możliwe są trzy mecze). Pierwszy ** to folder z dwucyfrową nazwą. Gdzie się mylę?

Odpowiedz

4

Metoda join zwykle nie powoduje rozwinięcia * i **, ale umieszcza je w postaci literałów. Może to jest problem. To, czego chcesz, może być bardziej podobne:

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

Otwórz każdy plik indywidualnie i wszystko powinno być w porządku.

+0

Geniusz. Działa idealnie. Dzięki! – snowangel

+0

Komentarz użytkownika anonimowego (odrzucona edycja): Aby powtórzyć nad każdą linią, zamień 'File.open (path)' przez 'File.open (path) .each'. – Anne

Powiązane problemy