如何从多个模型中对数据进行排序/排序?

问题描述 投票:1回答:1

我正在尝试生成一份列出最近收入变化的报告。我正在尝试确定对最近的更改进行排序(付款,退款,费用和信用)的最佳方式,对其进行分页并将其显示给用户。

这些项目有4种不同且不相关的模型(付款,退款,费用和信用)。有没有办法从数据库中查询?

ruby-on-rails activerecord rails-activerecord
1个回答
0
投票

使用Rails实现这一点并不容易。最终,STI是一种选择,但继承并不总是可行的方法(参见继承与组合)。

一种看待这种情况的方法是,所有4种不同的模型都有相同的关注点:它们应该基于某些字段(在您的情况下,使用updated_at)可检索。

考虑到这一点,您可以创建一个SQL视图来封装此问题。此视图将在每个表和公开字段之间执行UNION。然后,您可以创建一个Rails只读模型来表示此视图中的行,并通过ActiveRecord进行查询。

如果您需要一个具体的例子,请告诉我这个选项是否有趣。

© www.soinside.com 2019 - 2024. All rights reserved.