ruby on rails 合併多個結果集並排序
阿新 • • 發佈:2019-02-20
在最近工作中,遇到多個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