如何使用基于字段值的葡萄实体?

How to use grape entity based on value of a field?

任何从事 Grape & Grape 实体工作的人都遇到了问题。 数据库:Mongoid 我有两个模型 1. 用户 2. 答案

每个用户都有 package_type:123 每个答案也有数组中的包类型,但只有一个值。 喜欢 [1][2][3].

我想发送那些具有 package_type == users.package_type 的答复。

user_entity:

expose :answers, as: :profile_info, using: API::V1::Entities::Answer 

answer_entity:

module API
    module V1
        module Entities
            class Answer < Grape::Entity
                expose :answer
                expose :question
                expose :package_type
            end
        end
    end
end

你可以从关系中过滤

class User
  has_many :answers, -> { where({answers: {package_type: self.package_type}}) }
end

或来自实体

expose :profile_info do |user, _options| 
  API::V1::Entities::Answer.represent(user.answers.where({answers: {package_type: user.package_type}}))
end