簡體   English   中英

在active-model-serializers中,如何限制從has_many關聯返回的關聯對象?

[英]In active-model-serializers, how to limit the associated objects returned from a has_many association?

所以我有

    render json: Post.all       

這將返回我的所有帖子和我的Post序列化程序

    class PostSerializer < ActiveModel::Serializer
      has_many :comments
    end        

我希望JSON中返回的注釋數量限制為5,並且有一個變量,告訴我是否有更多注釋。 這可能嗎?

編輯:我想我會用新電話管理更多部分。 但無法弄清楚如何限制序列化程序中的注釋

在您的注釋模型中,編寫一個范圍方法來限制注釋的數量。

在models / comment.rb中

scope :limited_comments, lambda { limit(5) }

在PostSerializer中

has_many :comments

def comments
  Comment.limited_comments
end
has_many :comments do
  @object.comments.limit(5)
end

我擔心沒有辦法限制序列化程序中返回的記錄數量。 但是,您可以使用以下行限制控制器中的記錄。

# This code returns last 5 posts    
posts = Post.last(5)

render json: posts

你有沒有想過在這里實現某種分頁功能?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM