我正在执行两个查询:
@doodads= Doodad.all
@whatsits = Whatsit.all
我将它们添加到一个集合中:
@collection = @doodads + @whatsits
我想按'created_at字段:
对它们进行排序@collection.sort_by $:created_at
虽然它通过created_at字段对它们进行排序,但是项目类型没有混合 - 每个Doodad都是第一个,然后是每个Whatsit。如何正确收集这些文件?
答案 0 :(得分:1)
请使用Array#sort_by!:
使用通过在给定块中映射self中的值而生成的一组键来自行排序。
@collection.sort_by! &:created_at
当您使用@collection.sort_by &:created_at
时,其中sort_by
方法适用于@collection
的副本,但已排序的方法不会再次存储回@collection
(即{{ 1}}也会工作)。现在@collection = @collection.sort_by &:created_at
确实在接收器sort_by!
上执行排序。