2012-08-07 2 views
0

저는 RoR의 초보자입니다. 6000 행의 데이터가있는 데이터베이스를 가지고 놀고 있습니다. 시작하기에 너무 많은 데이터가 있기 때문에 컨트롤러/인덱스보기에서이 항목을 사용하여 고유 한 항목 이름을 가진 데이터 행만 표시하는 인덱스 테이블이 있습니다.RoR - 고유 값 계산

@glyphs_test = Glyph.group(:item) 

각 행과 함께 특정 항목이 전체 데이터베이스에 나타나는 횟수를 표시하려고합니다. 이 작업을 시도하면 작동하지만 인덱스로 인쇄하는 방법을 모르겠습니다. 예를 들어와

Glyph.group(:item).uniq.count 

결과 :

난 단지이의 숫자를 인쇄 할 수 있었다하더라도
=> {"Eternal Fire" => 8, "Glyph of Adrenaline Rush" => 74} etc... 

, 내가 어떻게 테이블을 일치 할 수 있습니까? 나는 여기서 중요한 무엇인가 놓치고 있다고 생각한다. 나는 show # 컨트롤러에서는 이것을 사용하지만 index # 컨트롤러에서는 이것을 사용하지 않음으로써 개별 레코드에서 이것을 할 수있다.

@glyph = Glyph.find(params[:id]) 
@glyphs = Glyph.where(["item = ?", @glyph.item]).order('net_gain ASC') 

미리 조언 해 주셔서 감사합니다. 아마도 나는 더 간단한 것을해야만하지만 이것에 대한 해결책이 있어야합니다. 당신이 좋아하는 뭔가 결과 해시을 반복 할 수

답변

0

@glyph_counts = Glyph.group(:item).uniq.count 

@glyph_counts.each do |key, value| 
    #key is the item, value is the count, using key and value as the object is a hash 
    # do your printing here 
end 

또는 당신이 당신의 문양을 반복하고 결과의 수를 얻기 위해 시도하는 경우에, 당신이 할 수있는 다음 다음

@glyphs = Glyph.all 
@glyph_counts = Glyph.group(:item).uniq.count 

@glyph.each do |glyph| 
    #something with your glyph 
    count = @glyph_counts[@glyph.item] 
end 
+0

그랬어! 고맙습니다! – user1582261