【发布时间】:2016-01-12 19:58:02
【问题描述】:
我正在尝试显示列表中每个结果的搜索数据块中的给定值。我收到错误“无法将字符串转换为整数”如何在我的linked_agents 中显示下一级数组?
我的特定列的代码是这样的
<td>
<% if result['primary_type'] === "resource" or result['primary_type'] === "digital_object" or result['primary_type'] === "accession" %>
<%= display_agents(result) %>
<% end %>
</td>
和代码
def display_agents(hash, opts = {})
object = JSON.parse( hash["json"] )["linked_agents"]
object2 = object["_resolved"]
html = "<div class='audit-display-compact'><small>"
html << "<ul style='list-style-type:none'>"
html << "<li>#{object2}</li>"
html << "</ul>"
html << "</small></div><div class='clearfix'></div>"
html.html_safe
end
这是linked_agents里面的内容。
[{"_resolved"=>{"names"=>[{"sort_name"=>"John Smith"}]}}]
如何获取所有的 sort_name 来显示数据?可能有多个 _resolved,每个都包含一个 sort_name。
谢谢
【问题讨论】:
-
查看您的对象,父对象中似乎没有排序名称(而是包含在 JSON 值中)。我怀疑你的逻辑工作正常,你只需要对那条数据做一些工作。您能否验证您的逻辑是否正常工作(通过在
元素中插入 或一些静态文本)? 元素工作正常。我可以放置常规文本,它可以工作以及主要对象中的任何内容。 好的,这证实了你的逻辑是正确的。问题是结果哈希中没有“sort_name”键。您需要在某处处理result['json'],以便您可以访问其中的正确值。如果不了解您的应用程序和“json”数据中包含的信息,我们将很难解析。我建议展示提供这些结果的操作并解释results['sort_name']的意图。我将 search_data 缩短为仅与此问题相关的数据。
标签: ruby-on-rails ruby-on-rails-3