2014-12-08 4 views
1

레일스에서 ​​배열로 모든 고유 값을 가져 오는 방법은 무엇입니까? 내가 원하는열의 모든 고유 값 가져 오기 테이블에서 배열로

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]] –

+0

죄송합니다. 질문이 없었습니다 – RSB

+0

둘 다에서 고유 한 ID 배열을 얻으려면'Match.pluck (: winner_id, : loser_id) .flatten.uniq' – RSB

관련 문제