2012-01-01 5 views
0

シナリオ:私は何百もの写真を含むピクチャテーブルを持っています。私は現在、1ページに100枚の写真をページするために 'will_paginate'を使用しています。私は 'will_paginate'を引き続き使用したいと思っていますしかし、私はページネーションをその日までに動かしたいと思っています。will_paginate 1日ごとに注文することができます

私はsort_byを使用して以下を試しましたが、動作しているとは思われません。

@pics = Picture.paginate(:page => params[:page]).sort_by(&:created_at)

最終目標:
ホームページは、私だけ今日の絵を示しています。
2ページ目をクリックすると、以前の写真のみが表示されます。
3ページ目をクリックすると、2日前に撮影した写真が表示されます。私はあなたが使用することはできませんwill_paginate

+0

指定した日付のための100以上の写真がある場合はどうなりますか?あなたが3ページ目にいて、その日の最初の100枚の写真が表示されているとします。 4ページ目を押すと、次の日の写真が表示されますか?または当日の写真ですか? –

+0

私ははるかに明確にすべきだったと思います。私のシナリオでは、最大のデフォルト(これは 'will_paginate'の一部として行うことができるように設定されています)を設定しているので、100枚しか表示していません。しかし、私はそれが100である必要はありませんし、私はハードセットルールを必要としません。 – alenm

答えて

4

を使用していきたいと思い

は、日付でグループ/範囲によってページ付けます。これを自分で行う必要があります。それはあなたがこのような何かを行うことができ、しかしそれほど難しいことではありません。

# pictures_controller.rb

def index 
    @date    = Date.parse(params[:date]) rescue Date.today 
    @pictures   = Picture.where(:created_at => @[email protected]_day.at_midnight) 

    @total_pictures = Picture.count 
    @current_pictures = @pictures.size 
end 

# pictures/index.html.haml

- @pictures.each do |picture| 
    = #.... 

= "Showing #{@current_pictures} pictures for #{@date}." 
= "There are a total of #{@total_pictures} pictures." 

= link_to 'View Previous day photos', pictures_url(:date => @date.prev_day) 
- if @date.past? 
    = link_to 'View Next day photos', pictures_url(:date => @date.next_day) 
+0

これを非常に簡単に説明していただきありがとうございます。私は 'will_paginate'を使うことを望んでいましたが、これはうまくいくでしょう。 – alenm

関連する問題