gpt4 book ai didi

ruby-on-rails - 从多个不同的 Rails 模型创建 "feeds"

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

我正在开发一个具有几种不同模型(票证、帖子、报告等)的应用程序。每个模型中的数据都不同,我想从所有这些模型中创建一个“提要”,以全面显示 10 个最近的条目(所有数据的混合)。

解决这个问题的最佳方法是什么?我是否应该创建一个新的 Feed 模型并在为用户分配工单或发布新报告时写入该表?我们还一直在研究 STI 来构建模型引用表,或者只是创建一个聚合数据的类方法。不确定哪种方法最有效...

最佳答案

您可以根据效率要求采用以下两种方式之一进行操作。

效率较低的方法是检索 10 * N 个项目并根据需要进行排序和减少:

# Fetch 10 most recent items from each type of object, sort by
# created_at, then pick top 10 of those.
@items = [ Ticket, Post, Report ].inject([ ]) do |a, with_class|
a + with_class.find(:all, :limit => 10, :order => 'created_at DESC')
end.sort_by(&:created_at).reverse[0, 10]

另一种方法是创建一个索引表,该表与各种记录具有多态关联。如果您只关心一次显示 10 个,您可以使用某种 rake 任务积极修剪它,将其限制为每个用户 10 个,或者任何需要的范围。

关于ruby-on-rails - 从多个不同的 Rails 模型创建 "feeds",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246479/

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