Ruby on rails 合并两个ActiveRecord数组并按创建的顺序排序
通过阅读 我知道我可以做一些事情,比如:Ruby on rails 合并两个ActiveRecord数组并按创建的顺序排序,ruby-on-rails,arrays,sorting,activerecord,merge,Ruby On Rails,Arrays,Sorting,Activerecord,Merge,通过阅读 我知道我可以做一些事情,比如: books = Book.find(:all) articles = Articles.find(:all) 并且认为: materials = books + articles materials.sort_by_created_at materials%> 如何合并和排序两个ActiveRecord数组???感谢帮助 你们很接近。使用加号连接阵列: materials=书籍+文章 通过调用sort\u by方法(从Enumerable混合)并传
books = Book.find(:all)
articles = Articles.find(:all)
并且认为:
materials = books + articles
materials.sort_by_created_at
materials%>
如何合并和排序两个ActiveRecord数组???感谢帮助 你们很接近。使用加号连接阵列:
materials=书籍+文章
通过调用sort\u by
方法(从Enumerable
混合)并传入前缀为的属性,可以对组合数组进行排序
materials.排序依据(&:created\u at)
对于大型结果集,这在性能方面不是很好。您可以考虑从父类(如材料)派生书和文章模型,如果它们相似,则使用STI(单表继承)将它们存储在同一个表中,并使用<代码>查找< /代码>,使用<代码>订单< /COD>子句,因此,数据库可以为您进行排序。您还可以使用数组#concat
合并两个数组
materials = books + articles
materials.sort_by_created_at
<%= render :partial => materials %>