2012-01-01 3 views
0

시나리오 : 나는 수백 장의 사진이 담긴 Pictures 테이블을 가지고 있습니다. 저는 현재 페이지 당 100 장의 사진을 페이지 매김하기 위해 'will_paginate'를 사용하고 있습니다. 계속해서 'will_paginate'를 사용하고 싶습니다. 하지만 요일별로 페이지 매김을 유도하고 싶습니다.will_paginate 일별로 주문할 수 있습니다.

나는 sort_by을 사용하여 다음을 시도했지만 작동하지 않는다고 생각합니다.

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

최종 목표 :
홈 페이지 나에게 오늘의 사진 만 보여줍니다.
이제 2 페이지를 클릭하면 어제 사진 만 표시됩니다.
3 페이지를 클릭하면 2 일 전에 촬영 한 사진이 표시됩니다.

나는 will_paginate

+0

? 3 페이지에 있고 그 날짜의 처음 100 장의 사진을 보여주고 있다고 가정 해 봅시다. 4 페이지를 누르면 다음 날 사진이 표시됩니까? 또는 당일 사진? –

+0

나는 훨씬 더 명확해야했음을 짐작한다. 제 시나리오에서는 100 개의 사진을 보여주고 있는데, 기본값으로 설정할 것입니다 ('will_paginate'의 일부로 할 수있는 것입니다). 그러나 나는 그것이 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 
주어진 날짜에 대한 100 개 이상의 사진이있는 경우 어떻게됩니까

# 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