如何使用基于字段值的葡萄实体?
How to use grape entity based on value of a field?
任何从事 Grape & Grape 实体工作的人都遇到了问题。
数据库: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
你可以从关系中过滤
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
任何从事 Grape & Grape 实体工作的人都遇到了问题。 数据库: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
你可以从关系中过滤
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