Мне удалось получить leaderboard gem, работая над моим Rails-приложением, но я не могу понять, как получить данные пользователя на нем. Я также не знаю, как получить его обновить как обновления оценки пользователей ...Получите таблицу лидеров, чтобы обновлять каждый раз, когда пользователь оценивает обновления.
Я следовал this tutorial, чтобы попытаться заставить его работать, но я сейчас изо всех сил получать последний бит интегрирован ...
на данный момент у меня есть Советы update_service.rb нравятся:
module Boards
class UpdateService < Boards::Base
def execute(user)
name = user.first_name
score = user.percentages
leaderboard.rank_member(name, score)
member = leaderboard.score_and_rank_for(name)
member[:page] = leaderboard.page_for(name, leaderboard.page_size)
member
end
end
end
Я хочу назвать эту услугу на всех пользователях в настоящее время (так, что все они в одном ряду с их текущими счетами), а затем настроить его так, что это вызывается каждый раз, когда счет пользователя обновляется.
Я не знаю, куда звонить его, чтобы получить исходные данные ...
Но играя в консоли рельсы я нашел вызова это работает:
update = Boards::UpdateService.new
Student.all.each do |student|
update.execute(student)
end
За это обновление в качестве обновления счета пользователя я думал, что я должен сделать что-то вроде этого:
after_update :update_rank
def update_rank
Boards::UpdateService.new
end
в классе пользователя, хотя, честно говоря, я получил это частично из учебника, и я не очень-то у nderstand почему это не так:
def update_rank
Boards::UpdateService(user)
end
Но это может быть просто потому, что я действительно не понимаю, что происходит очень хорошо ...
Хм, хорошо, что имеет смысл ... Я попробую это, как только выясню, как сначала получить все остальные оценки пользователя ... – camillavk