我正在尝试生成一份列出最近收入变化的报告。我正在尝试确定对最近的更改进行排序(付款,退款,费用和信用)的最佳方式,对其进行分页并将其显示给用户。
这些项目有4种不同且不相关的模型(付款,退款,费用和信用)。有没有办法从数据库中查询?
使用Rails实现这一点并不容易。最终,STI是一种选择,但继承并不总是可行的方法(参见继承与组合)。
一种看待这种情况的方法是,所有4种不同的模型都有相同的关注点:它们应该基于某些字段(在您的情况下,使用updated_at
)可检索。
考虑到这一点,您可以创建一个SQL视图来封装此问题。此视图将在每个表和公开字段之间执行UNION
。然后,您可以创建一个Rails只读模型来表示此视图中的行,并通过ActiveRecord进行查询。
如果您需要一个具体的例子,请告诉我这个选项是否有趣。