使用分页过滤模型仅过滤第一页 - rails 3

时间:2016-05-27 06:31:23

标签: ruby ruby-on-rails-3 pagination kaminari paginate

我有一个模型,我根据用户给出的一些参数进行过滤。过滤效果很好但只有一次     我开始使用分页,只过滤第一页的记录,忽略其他记录。     这是我在控制器中进行过滤的代码:

 @start_date = params[:start_date]
 @registers = Register.all.order("payment_date DESC").page(params[:page]).per(params[:all] ? nil : Kaminari.config.default_per_page)
 @registers.delete_if { |r| !(r.payment_date <= @end_date && r.payment_date >= @start_date) if (@start_date.present? && @end_date.present?) }

在视图中,我使用<%= paginate @registers %>对列表进行分页。

1 个答案:

答案 0 :(得分:0)

就像上面评论中提到的@Raffael一样,我不得不使用@registers = @registers.where(..)而不是@registers.delete_if(..),因为它会“缩小您的页码”。