books = Book.find(:all)
articles = Articles.find(:all)
通过阅读来自http://guides.rubyonrails.org/layouts_and_rendering.html http://guides.rubyonrails.org/layouts_and_rendering.html我知道我可以做这样的事情:
<%= render :partial => [customer1, employee1, customer2, employee2] %>
它会根据需要使用 _customer 和 _employee 部分。
所以我想做这样的事情:
materials = books + articles
materials.sort_by_created_at
并在视图中:
<%= render :partial => materials %>
如何对两个 ActiveRecord 数组进行合并和排序???感谢帮助!
你们非常接近。连接数组是通过加号完成的:
materials = books + articles
对组合数组进行排序可以通过调用sort_by
方法(混合在Enumerable
) 并传入前缀为的属性&:
materials.sort_by(&:created_at)
对于大型结果集来说,这不会带来良好的性能。如果 Book 和 Article 模型相似,您可能会考虑从父类(如 Material)派生它们,使用 STI(单表继承)将它们存储在同一个表中,并使用find
与order
子句,以便数据库可以为您进行排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)