gpt4 book ai didi

ruby-on-rails - 按日期排序 2 个 Activerecords - 当日期字段在 RAILS 中是不同的名称时

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:12 24 4
gpt4 key购买 nike

这是我在这里的第一篇文章(我第一次找不到答案!)

我有2条记录

Course.spotlight
NewsItem.spotlight

两者都返回 5 条记录。我将它们与:

@spotlight = Course.spotlight + NewsItem.spotlight

Course.spotlightrelease_date 排序并且NewsItem.spotlightpublish_at 排序,均为日期字段。

我的问题是,当日期字段名称不同时,我如何(现在它们已合并)按日期对它们进行排序?

最佳答案

您可以使用 Ruby 方法 sort_by:

@spotlight = @spotlight.sort_by do |record|
if record.respond_to?(:release_date)
record.release_date
else
record.publish_at
end
end
# sort by date ASC, you can use reverse! to change to order to DESC
# @sportlight.reverse!

此代码意味着每个 @spotlight 记录将始终通过调用 release_datepublish_at 返回一个日期(Ruby 无法比较 nil日期)。此外,如果您在 @spotlight 中有很多记录(例如一百条或更多条记录),这在性能上可能会很昂贵。

关于ruby-on-rails - 按日期排序 2 个 Activerecords - 当日期字段在 RAILS 中是不同的名称时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180893/

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