在我的Rails應用程序排序的用戶,每個用戶,這是怎麼了計算他們的分數:基於分數
<% comment_vote_count = @user.comments.map{|c| c.votes.count}.sum
comment_vote_count ||=0
comment_vote_count *= 2
final_score = comment_vote_count + @user.base_score %>
這僅僅是渲染中的一些觀點,並沒有在任何地方保存在數據庫中。
我試圖按照最高分到最低分的順序填充所有用戶的列表以及分頁結果。
這是我在我的控制器:
def user_list
@users = User.order("created_at DESC").paginate(:page => params[:page], :per_page => 10)
respond_to do |format|
format.html
end
end
在我USER_LIST鑑於
<ol>
<%= render (@users) %>
</ol>
<%= will_paginate @users, :next_label => 「next」 , :previous_label => '', :class => "next_pagination" %>
如何渲染根據自己的分數用戶的有序列表?我應該將分數存儲在數據庫中嗎?
什麼是user.score? –
這只是分配給每個用戶的基本評分。這存儲在數據庫中 –
@Katie H首先你不應該寫視圖中的業務邏輯。現在對您的問題,您有業務邏輯來獲取單個用戶的投票計數,在所有用戶的用戶模型中使用相同的邏輯。迭代所有用戶,使用相同的邏輯來獲得投票計數,將它們推入數組並按您選擇的順序排序。 –