Как использовать виноградную сущность, основанную на значении поля?
Любой, кто работал над 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