Как использовать виноградную сущность, основанную на значении поля?

Любой, кто работал над Grape & Grape, у меня есть проблема. db: Mongoid У меня две модели 1. Пользователь 2. Ответы

у каждого пользователя есть package_type: 1 или же 2 или же 3и каждый ответ также имеет тип пакета в массиве, но имеет одно значение. ЛАЙК [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

0 ответов

Вы можете сделать это фильтрацию из отношения

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
Другие вопросы по тегам