【问题标题】:How to use grape entity based on value of a field?如何根据字段的值使用葡萄实体?
【发布时间】:2018-07-21 17:36:23
【问题描述】:

在 Grape 和 Grape 实体上工作的任何人我都有一个问题。 db:蒙古人 我有两个模型 1. 用户 2. 答案

每个用户都有 package_type:1 或 2 或 3 并且每个答案也具有数组中的包类型,但具有单个值。 LIKE [1] 或 [2] 或 [3]。

我想发送那些具有 package_type == users.package_type 的答案作为响应。

用户实体:

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

【问题讨论】:

    标签: ruby-on-rails mongodb grape grape-entity


    【解决方案1】:

    您可以从关系中进行过滤

    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
    

    【讨论】:

      猜你喜欢
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多