无法从哈希内部将字符串转换为整数
can't convert String into Integer from inside hash
我正在尝试显示列表中每个结果的搜索数据块中的给定值。我收到错误 "can't convert String into Integer" 如何在我的 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" 包含一个字符串。而已。不是一个对象。 results[]
无法引用任何内容。假设 JSON 的格式都正确,您需要做的是这样的:
<%= JSON.parse( result["json"] )["linked_agents"]["_resolved"]["sort_name"] %>
现在,这太草率了,不是您想要实现目标的方式(假设这对您的数据集甚至有效)。实际上,您要做的是将 JSON 解析为一个变量,然后以哈希形式处理。
因为没有明确的问题,所以很难清楚地保持这里的工作主题。我鼓励您确保对 ruby 数组、散列和由它们组成的嵌套结构有基本的了解。此外,看看您如何检索进入 results["json"]
.
的数据
一旦你的数据结构正确,有很多方法可以完成很多事情,但是你需要对这些类型的结构有一个清晰的理解,然后才能施展魔法(并且你需要对你的数据有基本的了解不 了解我们才能为您提供解决方案)。
希望对您有所帮助。欢迎在评论中讨论混淆点,当我们为您的问题找到解决方案时,我会更新此答案。
我正在尝试显示列表中每个结果的搜索数据块中的给定值。我收到错误 "can't convert String into Integer" 如何在我的 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" 包含一个字符串。而已。不是一个对象。 results[]
无法引用任何内容。假设 JSON 的格式都正确,您需要做的是这样的:
<%= JSON.parse( result["json"] )["linked_agents"]["_resolved"]["sort_name"] %>
现在,这太草率了,不是您想要实现目标的方式(假设这对您的数据集甚至有效)。实际上,您要做的是将 JSON 解析为一个变量,然后以哈希形式处理。
因为没有明确的问题,所以很难清楚地保持这里的工作主题。我鼓励您确保对 ruby 数组、散列和由它们组成的嵌套结构有基本的了解。此外,看看您如何检索进入 results["json"]
.
一旦你的数据结构正确,有很多方法可以完成很多事情,但是你需要对这些类型的结构有一个清晰的理解,然后才能施展魔法(并且你需要对你的数据有基本的了解不 了解我们才能为您提供解决方案)。
希望对您有所帮助。欢迎在评论中讨论混淆点,当我们为您的问题找到解决方案时,我会更新此答案。