L'ordine dell'array Dir.glob
rendimenti dipende dal sistema operativo in uso, come il the documentation Uniti. Nella maggior parte dei computer, questo è l'ordine che ci si aspetta, ma per esempio su heroku l'ordine è piuttosto arbitrario.
È possibile ordinare la matrice semplicemente concatenando sort
alla chiamata del metodo esistente (Dir.glob("public/downloads/*").sort
), come suggerito per la prima risposta. Tuttavia, se si utilizza il metodo più volte, può essere più conveniente per creare un intorno alias in ordine per Dir.glob
per tornare sempre un array ordinato:
class Dir
class << self
alias :original_glob :glob
def glob(*args)
original_glob(*args).sort
end
end
end
Grazie. Ho scoperto che quando si spinge un'app su Heroku Dir.glob si ottiene una matrice diversa rispetto al mio Mac a casa. la selezione del risultato era quindi essenziale per far funzionare la mia app. –
Utente OSX qui. Funziona anche per l'ordinamento di file numerati come "test-1.jpg", "test-2.jpg", "prod-1.jpg", "prod-2.jpg", ecc. –