Ruby on rails 如何使用ruby对关系进行分页&x200B;在轨道上?

Ruby on rails 如何使用ruby对关系进行分页&x200B;在轨道上?,ruby-on-rails,ruby,rails-activerecord,kaminari,Ruby On Rails,Ruby,Rails Activerecord,Kaminari,我正在学习RubyonRails,作为学习目标,我制作了一个包含Instagram基本功能的API 我很难为我的追随者列表的结果分页 我还想只显示追随者,而不显示用户数据,因为它在下面没有返回: 另外,我正在使用kaminari gem进行分页 控制器 def followeres @user = User.find_by(username: params[:username]) @user.follower_relationships .page(params[:p

我正在学习RubyonRails,作为学习目标,我制作了一个包含Instagram基本功能的API

我很难为我的追随者列表的结果分页

我还想只显示追随者,而不显示用户数据,因为它在下面没有返回:

另外,我正在使用kaminari gem进行分页

控制器

def followeres

    @user = User.find_by(username: params[:username])

    @user.follower_relationships
    .page(params[:page] || 1)
    .per(1)
    .order('created_at DESC')

    render json: @user, include: [:followers]
end
Model user.rb

has_many :follows

has_many :follower_relationships, foreign_key: :following_id, class_name: 'Follow', dependent: :destroy
has_many :followers, through: :follower_relationships, source: :follower

has_many :following_relationships, foreign_key: :user_id, class_name: 'Follow', dependent: :destroy
has_many :following, through: :following_relationships, source: :following
[...]
user_serializer.rb

class UserSerializer < ActiveModel::Serializer
  include Rails.application.routes.url_helpers

  attributes :username, :full_name, :profile_pic_url, :genre, :phone, :email, :bio, :website, :is_private, :is_verified, :followers_count, :following_count
  has_many :followers, serializer: FollowSerializer
    has_many :following, serializer: FollowSerializer

  def profile_pic_url
    rails_blob_path(object.image) if object.image.attachment
  end

end
class FollowSerializer < ActiveModel::Serializer
  attributes :username, :full_name, :followers_count, :following_count, :is_private
end
我试过了

def followeres

        @user = User.find_by(username: params[:username])

        @followers = @user.follower_relationships
        .page(params[:page] || 1)
        .per(params[:per_page] || 20)
        .order('created_at DESC')

        render json: { followers: @followers }, status: :ok

end
但是反应

{
    "followers": [
        {
            "id": 3020,
            "user_id": 293,
            "following_id": 2,
            "created_at": "2019-07-25T19:22:37.000Z"
        },
        {
            "id": 2983,
            "user_id": 63,
            "following_id": 2,
            "created_at": "2019-07-25T19:22:37.000Z"
        },
        [....]
    ]
}

您应该在
@user
上获取
追随者
,而不是
追随者关系

def followeres
@user=user.find_by(用户名:params[:用户名])
@followers=@user.followers
.page(参数[:page]| | 1)
.per(参数[:每页]| | 20)
.order('在描述时创建'u')
呈现json:{followers:@followers},状态::ok
结束
{
    "followers": [
        {
            "id": 3020,
            "user_id": 293,
            "following_id": 2,
            "created_at": "2019-07-25T19:22:37.000Z"
        },
        {
            "id": 2983,
            "user_id": 63,
            "following_id": 2,
            "created_at": "2019-07-25T19:22:37.000Z"
        },
        [....]
    ]
}