Я хочу получить 10 лучших избирателей для комментария и добавить группу по?
Пример ответа:
1 => [1,2,3,4,5,6,7,8,9,10],
2 => [1,2,3,4]}
Не должно превышать 10 избирателей.
create_table "votes", force: :cascade do |t|
t.integer "user_id", limit: 4, null: false
t.integer "votable_id", limit: 4, null: false
t.string "votable_type", limit: 191, null: false
t.integer "weight", limit: 4
end
create_table "comments", force: :cascade do |t|
t.text "message", limit: 16777215, null: false
t.string "type", limit: 255
t.integer "commentable_id", limit: 4
t.string "commentable_type", limit: 191
t.integer "user_id", limit: 4, null: false
end
Это мой запрос, который возвращает всех избирателей. Вместо этого мне нужно вернуть 10 лучших избирателей за каждый комментарий.
Vote.where(votable_id: @comments_ids, votable_type: 'Comment').select(:votable_id, :user_id).group_by(&:votable_id)