

現在、以下のようなrankingモデルを作成し、ユーザーごとのゲームでのランキングを保存しております。(rails4系)

このランキングをもとに、週一度、crontabを用いて集計をするプログラムを書いております。

[code]

    ---rankings---
    user_id:integer point:integer
    --------------
    
[/code]

集計をするところまではわかるのですが、  
集計結果を画面側に表示させる方法で、一般的な方法がわからず質問させていただきました。

いわゆるバッチ処理？のため、アクセス毎に集計するわけではないため、  
集計結果を保存するためのmodelを作成し、そこにデータをいれていこうかと思ってます。

まだ経験が浅いため、この方法でいいのかどうかわからず、かつ、この方法を取る際に、気をつけておいたほうがいいことなどありましたら教えていただけると幸いです。

また、ちなみに、crontabを用いて集計する際に、
crontabないでsqlを記述し、それを元に実行しておりますが、そういうやり方が一般的なのかも知りたいです・・・。
周りに詳しい方がおらず、なかなか判断がつかないまま着手してしまっております


CC BY-SA 3.0
2015-11-24T12:05:40.253
19250
2016-10-19T00:25:37.323
2015-11-24T12:14:21.837
13175
13175
question
ruby-on-rails ruby
集計結果（バッチ処理）を画面に表示させる方法での質問


一般的かどうかは分からないですが。

ランキング用のモデルとテーブル作って集計結果を保存するようなことはします。  
表示はそれをただそのまま表示するだけです。

集計自体はrakeタスクを作って行います。その実行はcrontabで行います。

rakeタスクの例：

[code]

    namespace :ranking do
      desc "ランキングの集計"
      task count_up: :environment do
        # 実際の処理
      end
    end
    
[/code]

crontabを操作する[whenever](https://github.com/javan/whenever)というgemがあり、それを使うと簡単にcrontabの設定が出来るのでオススメです。


CC BY-SA 3.0
2015-11-24T15:58:00.827
19258
2015-11-24T15:58:00.827
12609
19250
answer