分页删除了控制器中的AR作用域

时间:2019-05-24 15:34:53

标签: ruby-on-rails

当前将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

1 个答案:

答案 0 :(得分:0)

在Engineersmnky的帮助下,我发现在我的情况下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]