我有一个模型,我根据用户给出的一些参数进行过滤。过滤效果很好但只有一次 我开始使用分页,只过滤第一页的记录,忽略其他记录。 这是我在控制器中进行过滤的代码:
@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 %>
对列表进行分页。
答案 0 :(得分:0)
就像上面评论中提到的@Raffael一样,我不得不使用@registers = @registers.where(..)
而不是@registers.delete_if(..)
,因为它会“缩小您的页码”。