分页删除控制器中的 AR 范围



目前正在使用 api-pagination gem 和 kaminari。我也有一个简单的范围来限制返回的对象数量。无论出于何种原因,分页都会删除范围的返回数组,只给我一个通用的分页数组。还有其他人遇到过这种情况吗?

class Album < ApplicationRecord
scope :by_release_date, -> (limit) { limit(limit) }
end

class Api::AlbumsController < ApplicationController
def index
albums = paginate Album.by_release_date(1).per(params[:page])
render json: Api::AlbumSerializer.new(albums).serialized_json
end
end

在工程师的帮助下,我发现在我的情况下,per覆盖了limit。考虑到这一点,api-pagination gem 在他们的分页方法中有一个选项,per_page可以帮助我完成我正在寻找的内容。最后它看起来像这样:

class Album < ApplicationRecord
scope :by_release_date, -> direction { order("release_date #{direction}") }
end

albums = paginate Album.by_release_date, per_page: params[:per_page]

最新更新