Rails / Kaminari - 如何订购分页数组?

Zan*_*rry 2 scope ruby-on-rails kaminari

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

在我的控制器中,我有:

@things = @friend_things + @user_things

@results = Kaminari.paginate_array(@things).page(params[:page]).per(20)
Run Code Online (Sandbox Code Playgroud)

我想要@results由 排序的最终数组:created_at,但没有运气得到排序以使用 Kaminari 提供的通用数组包装器。有没有办法在 Kaminari 包装器中设置顺序?否则最好的方法是什么?谢谢。

Ane*_*pos 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)
Run Code Online (Sandbox Code Playgroud)

或者

@things = @friend_things + @user_things
@things.sort_by! { |thing| thing.created_at }
@results = Kaminari.paginate_array(@things).page(params[:page]).per(20)
Run Code Online (Sandbox Code Playgroud)