У меня есть модель школы и результата, результаты которой принадлежат школам, а школы имеют результаты за каждый год. Каждый результат имеет поле: оценка, и я стараюсь оценивать каждый результат по его оценке, но только за каждый год. Таким образом, для каждого разного года будут разные рейтинги.Рейтинг с монгодом
1) Каков наилучший способ достичь этого рейтинга?
Один подход, я думал, это запустить хрон каждые 10 минут (например), что обновляет ранг
update_rank.rake
task :build => :environment do
Result.where(year: year).desc(:score).each_with_index do |result, position|
result.update_attribute(:rank, position + 1)
end
end
У меня есть вопрос, хотя здесь:
2) Как я могу сделать рейтинг за каждый разный год? Я мог бы сделать что-то вроде ниже, но это кажется немного громоздким, есть ли что-нибудь еще, что я мог бы сделать?
task :build => :environment do
eachyear = (1990..(Time.now.year)).to_a
eachyear.each do |year|
Result.where(year: year).desc(:score).each_with_index do |result, position|
result.update_attribute(:rank, position + 1)
end
end
end