Я хочу рейтинговую презентацию.
Рекомендовать модель имеет пользователя и количество.
rank / user_name / recommend_count
1 / A / 4
2 / B / 2
3 / C / 1
код
@top_recommenders = Array.new
recommends = Recommend.group(:user_id).order("sum_count DESC").limit(10).sum(:count)
recommends.each do |recommend|
recommend = Recommend.where(user_id: recommend[0]).first
recommend.count = recommend[1]
@top_recommenders << recommend
end
схема
create_table "recommends", force: :cascade do |t|
t.integer "user_id"
t.integer "recommender_id"
t.integer "count"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["recommender_id"], name: "index_recommends_on_recommender_id"
end
Это сработало, но не идеально.
Как запросить группу по 'пользователю' и порядку 'sum_count'?