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
当我在 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