will_paginate может заказывать по дням - PullRequest
0 голосов
/ 01 января 2012

СЦЕНАРИЙ: У меня есть таблица изображений, которая содержит сотни фотографий.В настоящее время я использую 'will_paginate', чтобы разбить на страницы 100 фотографий на странице.Я хотел бы продолжить использовать 'will_paginate' НО я хочу, чтобы разбиение на страницы проводилось днем.

Я попробовал следующее с помощью sort_by, но я не думаю, что этоработает.

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

КОНЕЦ ЦЕЛЕЙ:
На главной странице отображаются только те фотографии, которые сделаны сегодня.
Теперь, если я нажму на страницу 2, она покажет мнетолько вчерашние фотографии.
Теперь, если я нажму на страницу 3, она покажет мне фотографии, сделанные два дня назад.

Я хотел бы продолжить использовать will_paginate

1 Ответ

4 голосов
/ 03 января 2012

Вы не можете использовать будет разбивать на страницы по группам / областям по дате.Вам нужно будет сделать это самостоятельно.Это не очень сложно, хотя, вы можете сделать что-то вроде этого:

# pictures_controller.rb

def index
  @date             = Date.parse(params[:date]) rescue Date.today
  @pictures         = Picture.where(:created_at => @date.at_midnight..@date.next_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)
...