【发布时间】:2018-10-23 17:38:49
【问题描述】:
我有一个具有这些属性的 Order 模型:
- created_at 日期时间
- delivery_at 日期时间
- 状态 字符串
我想要做的是根据status 对两个集合按created_at 或delivery_at 进行排序。
在模型上,我创建了一个检查状态顺序并返回 created_at 或 delivery_at 日期时间的方法。
def status_date
if status == 'on_delivery'
delivered_at.to_datetime
else
created_at.to_datetime
end
end
然后在控制器中:
created = Order.where(status: 'open')
on_delivery = Order.where(stauts: 'on_delivery')
orders = created + on_delivery
orders.sort_by(&:status_date)
这不起作用。
我正在尝试实现按时间顺序排列的订单列表,但 DateTime 应该与其状态相关。
【问题讨论】:
标签: ruby-on-rails activerecord rails-activerecord