【问题标题】:will_paginate can it order by daywill_paginate 可以按天排序吗
【发布时间】:2012-01-03 22:10:19
【问题描述】:

场景:我有一个包含数百张照片的图片表。我目前正在使用“will_paginate”对每页 100 张照片进行分页。我想继续使用“will_paginate”但我希望分页按天进行。

我使用sort_by 尝试了以下操作,但我认为它不起作用。

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

最终目标:
主页只显示今天的照片。
现在,如果我点击第 2 页,它只会显示昨天的照片。
现在,如果我单击第 3 页,它会显示两天前拍摄的照片。

我想继续使用will_paginate

【问题讨论】:

  • 如果给定日期的照片超过 100 张会怎样?假设您在第 3 页,它显示了该日期的前 100 张照片。当您按第 4 页时,它会显示第二天的照片吗?还是当天的照片?
  • 我想我应该清楚得多。在我的场景中,我只显示 100 张照片,因为我将其设置为最大默认值(因为这是您可以作为 will_paginate 的一部分执行的操作)。但我不需要它是 100,也不需要硬性规定。

标签: ruby ruby-on-rails-3 gem sinatra will-paginate


【解决方案1】:

您不能使用将按日期按组/范围分页。您需要自己执行此操作。不过,这并不是很困难,您可以这样做:

# 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)

【讨论】:

  • 感谢您轻松澄清这一点。我希望我可以使用will_paginate,但这可以。
猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多