问题标签 [grape-entity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
162 浏览

ruby-on-rails - 如何使用 Grape Enttity 和 Swagger 返回多态数据?

我有一个多态标签,想通过这个标签搜索不明确的项目。
我怎样才能返回这个葡萄实体?

我需要定义实体taggable来公开 Swagger aka OpenAPI 接口。

0 投票
1 回答
246 浏览

ruby-on-rails - 如何在葡萄实体的响应中修复 JSON 字符串

我试图公开一个作为 JSON 字符串保存在数据库中的列。但它显示为字符串。任何帮助,将不胜感激。

实体样本:

实际反应:

预期反应:

0 投票
1 回答
1037 浏览

ruby-on-rails - 如何用 Grape 在 Rails 中修复“未定义的方法‘key?’”

我正在使用 Ruby on Rails 创建一个 API。我使用 gem 'grape' 向消费者提供 api,并使用 'spyke' 从另一个 api 接收数据。我对从 spyke 收到的数据进行处理和丰富,然后将其传递给葡萄。
问题是,我收到一个错误:undefined method key?.

我已经检查了我从 spyke 收到的数据。数据似乎没问题(我没有收到数组,我得到了一个哈希)。我已经用puts resultand打印了它result.class(结果是 spyke 收到的数据)。
我已经用谷歌搜索了错误消息undefined method key?。我尝试了 stackoverflow 和其他资源提供的所有“解决方案”。他们都没有工作。我什至不知道错误的确切来源。

我不知道这是否重要,但是当我raise 'test'在 line 之前提出一个字符串时present StatsNode.where...,该消息{"response_type":"error","response":"asdf"}将作为响应出现。如果我在该行之后提出字符串present,则会出现初始错误消息。

确切的消息是:{"response_type":"error","response":"undefined method key?' for [\"_nodes\", {\"total\"=\u003e1, \"successful\"=\u003e1, \"failed\"=\u003e0}]:Array"}

我希望 api 返回一个带有数据而不是错误消息的 json。
错误消息来自哪里,我该如何解决这个问题?

编辑:
我正在使用:
- Ruby 2.5.5
- Rails 5.2.3
- 最新的 Spyke
- 最新的葡萄 - 最新
的葡萄实体

0 投票
2 回答
548 浏览

ruby-on-rails - Rails Grape api:获取更多数据时的性能

我在使用葡萄 api 时遇到性能问题。我有以下型号:

结尾

我正在使用葡萄通过rest-api获取所有用户和各自的个人资料

我写了 UserEntity 类

我遇到了问题,当我尝试获取所有用户和个人资料时,它需要超过 15 秒。在以下代码中面临问题(花时间获取关联对象)。

我怎样才能以有效的方式解决(通常少于 5 秒)

0 投票
1 回答
795 浏览

ruby-on-rails - 带有字符串键的哈希的葡萄实体不起作用

我正在使用'葡萄实体','〜> 0.7.1'

我有一个哈希格式:

我有以下实体

现在我需要确保无论我的 Hash 中的键类型如何,它仍然应该为我提供上述情况的正确输出

但我得到的响应格式如下

所以在实际响应sheet_indexother_names,第二个元素的值为 nil,因为它们的键是字符串,而不是符号。(请参阅temp_data。)

我已经参考了https://github.com/ruby-grape/grape-entity/pull/85来获得上述实现,但如果不使用 HashWithIndifferentAccess 或 OpenStructs 仍然无法使其工作

0 投票
2 回答
264 浏览

ruby-on-rails - ruby葡萄实体——继承,子不包含父的字段

我希望得到带有 name 和 note 字段的 json。但我只得到注释字段。我究竟做错了什么?

0 投票
1 回答
245 浏览

ruby-on-rails - 如何覆盖 Grape API 响应负载中的根密钥?

我怎样才能通过重用这个实体来干燥我的代码,同时仍然可以灵活地重命名实体中定义的根键('stuffs'和'stuff')?

在公开由现有实体表示的集合的子集或公开可由现有实体表示的关联集合的情况下,我可能需要执行此操作。

0 投票
1 回答
325 浏览

ruby-on-rails - 如何在葡萄实体中公开哈希而不使用`using`

我有这个实体。

我得到这样的结果。

当我使用实体的方法时,它会返回这个。

如何取得这样的结果。

并且不要使用实体的using选项。因为我的应用程序的结果不是合适的新实体。

0 投票
1 回答
102 浏览

ruby-on-rails - 转换哈希数组的输入序列并通过葡萄实体表示

这是一个两部分的问题

activerecord/Rails 的新手。一旦我执行下面的 activerecord 查询,我得到

这个结果,现在我想通过对来自的输出进行后处理来使用实体呈现结果

(在预期输出的第二个哈希中,我添加了action1 => 0and action2 => 0,因为 0 应该是默认值。)

如何实现上述输出?我不确定是否可以在不进行后处理的情况下呈现查询的输出。到目前为止我试过

需要对上面的 map-reduce 代码进行更改以获得预期的结果。

预期的响应应该如下所示,因此我专注于对查询的输出进行后处理。

例如,我试图公开 rails 控制台中的 id 字段但遇到错误

当我尝试

这失败了(Object doesn't support #inspect) 我做错了什么?

更新

我通过从当前输出构造一个数组列表来完成这项工作

每个数组元素都包含一个符号哈希。这也适用于 Rails 控制台。我想知道是否有到达这里的最佳方式。

0 投票
0 回答
21 浏览

ruby - 如何使用grape-swagger从自动生成的Swagger doc上的失败“响应”中删除“模式”字段

我得到了这个代码的端点:

具有此代码的模板实体(除其他外):

和具有此代码的响应实体:

如您所见,自动生成的 Swagger 文档包含一个用于失败响应的“模式”字段:

我已经简化了 422 响应信息以删除“模式”字段,但它继续出现。如何动态删除它。