字母Dir.glob的结果

在我的控制器中,我有:

@files = Dir.glob("public/downloads/*") 

在我看来,我有:

  

如何按字母顺序排列结果?

你应该能够:

 @files = Dir.glob("public/downloads/*").sort 

返回的数组Dir.glob的顺序取决于您使用的操作系统,如文档所述。 在大多数计算机上,这是您期望的顺序,但是例如在heroku上,顺序非常随意。

您可以通过将sort链接到现有方法调用( Dir.glob("public/downloads/*").sort )来排序数组,作为建议的第一个答案。 但是,如果多次使用该方法,则为了使Dir.glob始终返回有序数组,创建around别名可能更方便:

 class Dir class << self alias :original_glob :glob def glob(*args) original_glob(*args).sort end end end