Ruby on rails 如何使用基于字段值的grape实体?
任何在葡萄和葡萄实体工作的人我都有一个问题。 db:Mongoid 我有两种型号 1使用者 2答复 每个用户都有包类型: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
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