如何使用按条件排序

How use order by condition

是否可以按条件对数据进行排序?

例如,打个比方,.order( "expiration_date <?", Time.current, :desc )

ORDER BY 关键字用于按一列或多列对结果集进行排序。 ORDER BY 关键字默认按升序对记录进行排序。要按降序对记录进行排序,可以使用 DESC 关键字。

您可以使用类似 :-

的方式进行排序
sorted = @records.sort_by &:created_at

或尝试 where 首先获取结果集然后对其进行排序:-

@records.where( "expiration_date <?", Time.current).order( :created_at, :desc )

而且你可以轻松分页;-

@records.paginate(:page => params[:page], :per_page => 15)#.order(" created_at ASC")