Kolejność tablicy Dir.glob
powraca zależy od używanego systemu operacyjnego, jak the documentation Zjednoczone. Na większości komputerów jest to kolejność, jakiej można się spodziewać, ale na przykład na heroku kolejność jest dość arbitralna.
Możesz po prostu posortować tablicę, łącząc sort
z istniejącym wywołaniem metody (Dir.glob("public/downloads/*").sort
), zgodnie z pierwszą sugerowaną odpowiedzią. Jednakże, jeśli używasz metody wiele razy, może być bardziej wygodne, aby utworzyć wokół aliasu w celu Dir.glob
zawsze powrócić uporządkowanej tablicy:
class Dir
class << self
alias :original_glob :glob
def glob(*args)
original_glob(*args).sort
end
end
end
Dzięki. Zauważyłem, że po naciśnięciu aplikacji na Heroku Dir.glob otrzymuje się inną tablicę niż na moim Macu w domu. więc sortowanie wyniku było niezbędne, aby uruchomić aplikację. –
Użytkownik systemu OSX tutaj. Działa to również w przypadku sortowania plików numerowanych, takich jak "test-1.jpg", "test-2.jpg", "prod-1.jpg", "prod-2.jpg" itp. –