1. 程式人生 > >ruby on rails 合併多個結果集並排序

ruby on rails 合併多個結果集並排序

   在最近工作中,遇到多個reust,需要顯示在同一個dialog中的問題,並且按照時間排序,查閱了不少資料,尋找到一種有效的解決辦法,如下:

    1,針對同一張表查詢出來的多個結果集需要合併,按照column1排序

       set1_data = xxx.users

       set2_data = yyy.users

       result = set1_data + set2_data 

       result = result.sort_by{|r| r.column1}

    2.針對不同表查詢結果進行合併,按照column1排序

       set1_data = xxx.users

       set2_data = yyy.users

       result = User.from("(#{set1_data.to_sql} union all #{set2_data.to_sql}) as users")

       result = result.sort_by{|r| r.column1}

     3.還有一種其他大神給的方案,也是ruby提供的方案,本人沒有驗證

and 並集的合併用 merge

or 的合併用or

  Eric

[email protected]