【问题标题】:Rails Active Record - How to ordering by multiple fields conditionally?Rails Active Record - 如何有条件地按多个字段排序?
【发布时间】:2022-12-16 08:28:24
【问题描述】:
我有以下查询:
users.order("encounters.created #{order}")
但是,如果“创建”字段为空,我想使用具有相同数据类型(在本例中为 DateTime)的不同字段进行排序,如下所示:
user.order("encounters.created or encounter.start #{order}")
这肯定行不通。
这可能吗?
【问题讨论】:
标签:
ruby-on-rails
activerecord
【解决方案1】:
在 max 的帮助和一些研究之后,找到了解决方案:
user.order("Arel.sql("case when encounters.start is not null then encounters.start else encounters.created end #{order}"))