gpt4 book ai didi

ruby-on-rails - 合并两个ActiveRecord数组并按created_at排序

转载 作者:行者123 更新时间:2023-12-03 08:45:12 24 4
gpt4 key购买 nike

books = Book.find(:all)
articles = Articles.find(:all)

通过从 http://guides.rubyonrails.org/layouts_and_rendering.html阅读
我知道我可以做类似的事情:
<%= render :partial => [customer1, employee1, customer2, employee2] %>

并且会在适当的时候使用_customer和_employee局部变量。

所以我想做这样的事情:
materials = books + articles
materials.sort_by_created_at

并在 View 中:
<%= render :partial => materials %>

如何对两个ActiveRecord数组进行合并和排序?谢谢!

最佳答案

你很亲密连接数组是使用加号完成的:
materials = books + articles
可以通过调用sort_by方法(从Enumerable混合)并传入以&:开头的属性来对组合数组进行排序
materials.sort_by(&:created_at)
对于大型结果集,这将不是良好的性能。您可能会考虑从父类(例如Material)相似的Book和Article模型,使用STI(单表继承)将它们存储在同一张表中,并使用findorder子句,以便数据库可以为您排序。

关于ruby-on-rails - 合并两个ActiveRecord数组并按created_at排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com