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