【发布时间】:2013-09-05 17:56:18
【问题描述】:
我在我的 ruby on rails 博客项目中设置了许多不同的模型。目前不同的模型类型是文章、快速提示、引用和定义。我创建了一个页面,我希望在其中按创建时间排序的单个流中显示所有这些。
问题:从所有内容类型中选择并按创建日期排序,检索特定数量的项目的智能/有效方法是什么。
希望是说明性的伪代码:
Db.load([:Tip, :Quote, :Article, :Definition]).order_by(:created_at).limit(10)
到目前为止,我自己想出的最佳解决方案是加载每个类别的 10 个项目,对它们进行排序并从排序列表中选择最新的 10 个。 :P
【问题讨论】:
-
如果您可以为您的表提供架构将会很有帮助。
-
您可以在 SQL (stackoverflow.com/questions/13656864/…) 中创建一个 VIEW,然后查询该视图以获取所有最新记录。
-
Yoshiji 先生,您的答案取决于是否存在共享 ID 或可以进行连接的东西,但是这些表根本没有共同点。因此,我不想将任何内容组合成复合行,我只想一次从多个表中检索数据,按创建日期排序,高效。
-
安德烈·迪翁,虽然我很同情你想要了解所有事实的愿望,但我很确定每张桌子的细节对于手头的问题来说是无趣的,因为问题应该是相当笼统的。假设这些表完全不相关,包含不同的字段并且不共享任何信息。如果您仍然认为查看完整架构会有所帮助,那么我会发布它。
标签: sql ruby-on-rails ruby activerecord ruby-on-rails-4