gpt4 book ai didi

ruby-on-rails - 在 RoR 中组合不同对象的数组,并按每个对象的不同属性的日期值排序

转载 作者:行者123 更新时间:2023-12-04 05:57:02 24 4
gpt4 key购买 nike

我在 ruby​​ on rails 中有两个对象数组。我想将它们组合起来并按两个不同的属性对它们进行排序。这可能吗?

一个是“Post”记录数组,一个是“Talk”记录数组。它们都需要按日期排序。但对于 Post,相关属性是 created_at,而对于 Talk,它是 date_given。正是这种令人头疼的问题让我考虑取消这两种不同的模型并用更灵活的 Post 模型取而代之。

如有任何想法,我们将不胜感激。

最佳答案

我刚刚尝试了一些有效的方法,但不确定这是否是处理此问题的最佳方法。我只是为每个模型添加一个方法,称为可排序日期,并将其设置为我想要的。一个问题是 created_at 是一个时间而 date_given 是 DateTime,所以我用这篇文章来处理那个 Convert to/from DateTime and Time in Ruby

talk.rb

def sortable_date
date_given
end

post.rb

def sortable_date
created_at.to_datetime
end

然后在我的 Controller 中 -

@posts = Post.order('created_at DESC').limit(3)
@talks = Talk.order('date_given DESC').limit(3)

@news = @posts + @talks
@news.sort_by! &:sortable_date
@news = @news[1..4]

我只是在我的 View 中呈现@news,它会很好地调用适当的部分。我希望得到一些反馈。

关于ruby-on-rails - 在 RoR 中组合不同对象的数组,并按每个对象的不同属性的日期值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995299/

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