我想显示用户的所有订单,并按日期(不含时间(排序,然后使用范围根据状态排序。我找到的最接近的方法是这样做,但我想知道是否有更好的方法:
型号:order.rb
...
scope :order_by_year, -> {order "EXTRACT('year' FROM created_at) DESC"}
scope :order_by_month, -> {order "EXTRACT('month' FROM created_at) DESC"}
scope :order_by_day, -> {order "EXTRACT('day' FROM created_at) DESC"}
scope :order_by_status, -> {order shipment_status: :asc}
控制器:orders_Controller.rb
...
@orders = @user.orders
.order_by_year
.order_by_month
.order_by_day
.order_by_status
如果是Postgres数据库,可以使用日期函数进行订购,像
scope :order_by_created_date, -> {order("date(created_at) DESC/ASC") }