2

我在订购已成功使用 Kaminari 分页的数组时遇到问题。

在我的控制器中,我有:

@things = @friend_things + @user_things

@results = Kaminari.paginate_array(@things).page(params[:page]).per(20)

我想让最终的@results数组按 排序:created_at,但是没有运气让排序与 Kaminari 提供的通用数组包装器一起工作。有没有办法在 Kaminari 包装器中设置顺序?否则最好的方法是什么?谢谢。

4

1 回答 1

5

您可以在将元素发送到 Kaminary 之前对其进行排序,如下所示:

@things = @friend_things + @user_things
@things.sort! { |a,b| a.created_at <=> b.created_at }
@results = Kaminari.paginate_array(@things).page(params[:page]).per(20)

或者

@things = @friend_things + @user_things
@things.sort_by! { |thing| thing.created_at }
@results = Kaminari.paginate_array(@things).page(params[:page]).per(20)
于 2013-05-01T22:14:08.960 回答