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

Filtering models with pagination only filters first page - rails 3

我有一个模型,我正在根据用户提供的一些参数进行过滤。过滤工作正常但一次 我开始使用分页,只有第一页的记录被过滤,其他的被忽略。 这是我在控制器中用于过滤的代码:

 @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 %> 对列表进行分页。

就像@Raffael 在上面的评论中提到的,我不得不使用 @registers = @registers.where(..) 而不是 @registers.delete_if(..) 因为它 "screws your page numbers up"。