Rishabh Rishabh - 1 year ago 74
JSON Question

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

So I have

render json: Post.all

This returns all my Posts and in my Post serializer I have

class PostSerializer < ActiveModel::Serializer
has_many :comments

I want the number of comments returned in the JSON to be limited to 5 and have a variable which tells if more comments are there. Is this possible?

Edit: I think I'll manage the more part with a new call. But can't figure out how to limit the comments in the serializer

Answer Source

In your comments model write a scope method to limit the number of comments.

In models/comment.rb

scope :limited_comments, lambda { limit(5) }

In PostSerializer

has_many :comments

def comments
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download