2017-01-07 6 views
0

私はを支払うモデルデータ属性を持っています。今、私は今週のすべてのレコードをページ上で取得する必要があります。最初のページでは、今週のすべてのレコード、前のページのレコード、前週のレコードなどを取得します。Railsで週間レコードを取得するには?

そしてすべてのページで合計を取得する必要があります今週は、平均値はです。

  • がどのようにページ上の特定の週のすべてのレコードを取得する:

    だから、私は2つの質問がありますか?

  • 今週の金額の計算方法は?私がやった今はすべて

は週に配列したと

def self.count_by_week 
    raw_result = group_by_week_and_state.count 

    # {['2014-12-01-2014-12-07', 'foo'] => 100, ['2014-12-01-2014-12-07', 'bar'] => 100, '...' => '...'} 

    raw_result.each_with_object({}) do |(k, v), result| 
     result[k[0]] ||= {} 
     result[k[0]][k[1]] = v 
    end 
    end 

    def self.group_by_week_and_state 
    group("#{weekday_query(0)} || \'-\' || #{weekday_query(6)}").group('amount') 
    end 

    # build sql part for day offset of week (0 => mon, 6 => sun) 
    def self.weekday_query(offset) 
    "to_char(cast(date_trunc(\'week\', created_at) as date) + #{offset}, \'YYYY-MM-DD\')" 
    end 

答えて

0

あなたはこれを達成するためにgroupdate宝石を使用することができます量。

https://github.com/ankane/groupdate

あなたが正常にレコードをグループ化したら、それはそれぞれのグループの合計を取得するにはあまりにも簡単です。

関連する問題