1

我的事件表中的一列包含一列,其值为“保留”、“重要”、“待定”等。我想将查询结果返回给客户端并按此列排序,但我不想按字母顺序排序。“重要”事件应该是第一个,“待定”第二个,等等。更重要的是,我想将整数排序值返回给客户端。

@work = Transaction.
     joins( :events ).
     where( store_id: params[:work_id] ).
     where( status: 'Open' )
4

1 回答 1

1

你可以这样做:

@work = Transaction.
     joins(:events).
     where(store_id: params[:work_id]).
     where(status: 'Open').
     select("(case when your_column = 'Important' then '1' 
                   when your_column = 'Pending' then 2 
                   when your_column = 'Hold' then 3 else 4 end) as your_integer_column").
     order("your_integer_column")
于 2013-09-19T13:56:47.927 回答