0

任何在葡萄和葡萄实体上工作的人我都有一个问题。db: Mongoid 我有两个模型 1. 用户 2. 答案

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

我想发送那些具有 package_type == users.package_type 的答案作为响应。

用户实体:

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

答案实体:

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

1 回答 1

1

您可以从关系中进行过滤

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
于 2019-01-22T15:51:42.560 回答