Ruby on rails 如何使用基于字段值的grape实体?

Ruby on rails 如何使用基于字段值的grape实体?,ruby-on-rails,mongodb,grape,grape-entity,Ruby On Rails,Mongodb,Grape,Grape Entity,任何在葡萄和葡萄实体工作的人我都有一个问题。 db:Mongoid 我有两种型号 1使用者 2答复 每个用户都有包类型:1或2或3 每个答案在数组中也有包类型,但只有一个值。 例如[1]或[2]或[3] 我想发送那些具有package_type==users.package_type的应答 用户实体: expose :answers, as: :profile_info, using: API::V1::Entities::Answer module API module V1

任何在葡萄和葡萄实体工作的人我都有一个问题。 db:Mongoid 我有两种型号 1使用者 2答复

每个用户都有包类型:
1
2
3
每个答案在数组中也有包类型,但只有一个值。 例如
[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
答复:

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
模块API
模块V1
模块实体
类答案
您可以从关系中进行筛选

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