用户葡萄实体与数组



我想知道葡萄实体是否适用于渲染哈希数组,我以为我补救了它的工作,但不知何故我现在无法让它工作,我犯了一些明显的错误吗?这是我的实体:

class V1::Entities::Searchresult < Grape::Entity
   expose :_type, as: :type
   expose :_id, as: :id
   expose :_score, as: :score
   expose :highlight
end

在我的 API 中,我像这样调用渲染:

present result['hits']['hits'], with: V1::Entities::Searchresult, :params => params
"结果["命中"]

["命中"]"由包含数据的 10 个哈希填充。数据存在。但是,当我查看结果时,我得到:

[
  {
    "type": null,
    "id": null,
    "score": null,
    "highlight": null
  },
  {
    "type": null,
    "id": null,
    "score": null,
    "highlight": null
  },
  ......

是我做错了什么,还是这根本不可能。我似乎无法在数组顶部挖掘任何文档。

干杯

汤姆

我发现了错误,Grape::Entity::D elegator::HashObject 无法处理具有字符串键而不是符号的哈希。它无法提取值。

  data = []
  result['hits']['hits'].each do |item|
    data << item.symbolize_keys
  end
  present data, with: V1::Entities::Searchresult, :params => params

此解决方法可省略该问题。我还将打开一个 github 问题进行修复,因为一个简单的

object[attribute] || object[attribute.to_s]

将解决整个问题,而不是仅使用

object[attribute]

以读取属性。

相关内容

  • 没有找到相关文章

最新更新