【问题标题】:How to sort/order data from multiple models?如何对来自多个模型的数据进行排序/排序?
【发布时间】:2019-03-08 16:43:55
【问题描述】:

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

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

【问题讨论】:

  • 能否详细说明各个模型之间的关系?
  • 另外,您是否想要获得最近更改的记录列表,这些记录是PaymentRefundFeeChargeCredit?还是每种类型一个列表?
  • 这很容易使用 STI(单表继承)
  • 模型之间没有关系。我想要一份包含付款、退款、费用或信用的清单。 @MrYoshiji

标签: ruby-on-rails activerecord rails-activerecord


【解决方案1】:

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

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

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

如果你对这个选项感兴趣,如果你需要一个具体的例子,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2015-06-08
    • 2010-11-20
    • 1970-01-01
    相关资源
    最近更新 更多