2014-12-08 141 views
1

在Rails中,如何從列中獲取所有不同的值,作爲數組?從列表中獲取列中所有不同的值作爲數組從表

Matches 
------- 
winner_id  loser_id 
1    2 
1    3 
1    4 
1    5 

我想在winner_id列所有不同的ID,和所有不同的ID在loser_id列。運行Match.select(:winner_id).distinct.to_a不起作用。它返回一個數組或記錄對象,如[#<Match id: nil, winner_id: 1>, #<Match id: nil, winner_id: 2>]。我試圖得到如[1, 2]的結果。

回答

4

使用pluck獲取數組

Match.pluck(:winner_id).uniq 
+0

驚人。現在,如果我想在winner_id和loser_id之間創建一個唯一ID數組,我應該只使用Match.pluck(:winner_id,:loser_id).uniq',然後合併結果數組? '[[1],[2,3,4,5]]' – 2014-12-08 07:40:02

+0

對不起,我沒有得到你的問題 – RSB 2014-12-08 07:43:47

+0

要從這兩個人獲得一個唯一的ID數組,你可以做'Match.pluck(:winner_id,:loser_id ).flatten.uniq' – RSB 2014-12-08 07:46:42