2013-02-01 47 views
0

努力讓每個用戶>顯示頁面上顯示正確的分數。需要使用鍵值爲每個用戶提取值

我正在使用的應用程序控制器helper_method :high_scores,像這樣:

def scores 
    User.joins(submissions: :score).maximum(:sub_total, group: 'users.id') 
end 

這將返回:

{6619=>"5", 6608=>"50", 6601=>"10", 6598=>"15", 6594=>"20", 6582=>"20", 6574=>"5", 6565=>"15", 6553=>"20", 6549=>"10", 6543=>"5", 6527=>"10", 6476=>"10", 6467=>"20", 6465=>"20", 6447=>"15", 6414=>"25", 6404=>"20"...} 

隨着USER_ID的關鍵返回該用戶的最高分數的值。

然後,我想呈現每個成員用戶顯示模板高分爲:

<%= contest_score %> contest points<br/> 

或類似的東西。

我不知道如何提取值。這聽起來很簡單,但我正在學習。

回答

1

試試這個

<% contest_scores.each do |(user_id, score)| %> 
    <%= user_id %> 
    <%= score %> 
<% end %> 
+0

有沒有辦法做到在應用程序控制器繁重,然後使用'視圖high_score'?我需要在兩個地方使用它,我需要能夠將high_score添加到另一個整數。 –

+0

我不確定你的要求是什麼。 'contest_scores'包含所有用戶的高分榜。爲特定用戶獲得高分,請使用'contest_scores [user_id]'。您可能需要將該方法緩存到實例變量中,以便只讀取一次 – jvnill

+0

謝謝!我需要知道語法。 –