Rails active_model_serializer 条件包含

Rails active_model_serializer conditional include

当我在 Rails 5 API 和 active_model_serializers 中有 has_many/belongs_to 关系时,我可以传递包含嵌套模型的选项。

def show
    render json: @post, include: ['comments']
end

也可以实现多层嵌套。

def show
    render json: @post, include: ['comments', 'comments.comment_likes']
end

我在任何地方都找不到有关向 include 语句添加条件的文档。有没有可能做这样的事情?

def show
    render json: @post, include: ['comments'] { top_contributor: true } 
end

在 master(即将成为 RC4)中,合并了一个 PR,允许在序列化程序级别执行以下操作:

belongs_to :user, if: :include_user?
def include_user?
  current_user.admin?
end