在 active-model-serializers 中,如何限制从 has_many 关联返回的关联对象?

Ris*_*abh 4 json ruby-on-rails active-model-serializers

所以我有

    render json: Post.all       
Run Code Online (Sandbox Code Playgroud)

这将返回我所有的帖子,并在我的帖子序列化程序中

    class PostSerializer < ActiveModel::Serializer
      has_many :comments
    end        
Run Code Online (Sandbox Code Playgroud)

我希望将 JSON 中返回的评论数量限制为 5,并有一个变量来判断是否有更多评论。这可能吗?

编辑:我想我会通过一个新电话来管理更多的部分。但是不知道如何限制序列化程序中的注释

Pha*_*ang 8

has_many :comments do
  @object.comments.limit(5)
end
Run Code Online (Sandbox Code Playgroud)


nit*_*kar 5

在您的评论模型中编写一个范围方法来限制评论的数量。

在模型/评论.rb

scope :limited_comments, lambda { limit(5) }
Run Code Online (Sandbox Code Playgroud)

在后序列化器中

has_many :comments

def comments
  Comment.limited_comments
end
Run Code Online (Sandbox Code Playgroud)