将两个不同的ActiveRecord集合合并为一个
我想创建所有公司活动的视觉时间表。 时间轴的HTML是使用loop
构建的。
为简单起见,我们假设有两种模式Hire
& Deal
。 两个模型都具有date
属性和一些模型特定属性。 如何合并两个模型的ActiveRecord
结果,然后按date
对组合的哈希进行order
将其组合成一个我可以循环的哈希?
好吧,假设查询Hire
和Deal
模型的结果是一个对象数组( 集合 ),那么你只需使用+
将它们连接成一个新数组,并按date
用sort_by
对项目进行排序:
combined = ( Hire.all + Deal.all ).sort_by(&:date)
或使用concat
将一个集合与另一个集合连接起来:
combined = Hire.all.concat( Deal.all ).sort_by(&:date)