无法访问哈希值

时间:2019-08-29 06:08:05

标签: ruby-on-rails ruby hash

我有此代码:

price = variant[merchant["variant_code"]]

译为:variant["PRDCT-A"] 但是我的问题是它返回nil,因为我的variant哈希看起来像这样:{:"PRDCT-A"=>{:price=>1495.0}}它有:,但是我只传递了"PRDCT-A",应该是{ {1}}。

我已经尝试过concat但它不起作用,如何包含冒号以便可以访问哈希值?

3 个答案:

答案 0 :(得分:3)

如果我没记错的话,您的哈希结构可能类似于

merchant = {variant_code: 'PRDCT-A'}
variant = {:"PRDCT-A"=>{:price=>1495.0}}

,您想在商家哈希的帮助下访问变体值

您应该尝试一下

variant.dig(merchant[:variant_code].to_sym)

答案 1 :(得分:1)

请尝试对<template > <div class="container"> <GChart type="OrgChart" :data="chartData" @ready="onChartReady" /> </div> </template> <script> import { GChart } from 'vue-google-charts' export default { components: { GChart }, data () { return { // Array will be automatically processed with visualization.arrayToDataTable function chartData: [ [{v:'Mike', f:'Mike<div style="color:red; font-style:italic">President</div>'}, '', 'The President'], [{v:'Jim', f:'Jim<div style="color:red; font-style:italic">Vice President</div>'}, 'Mike', 'VP'], ['Alice', 'Mike', ''], ['Bob', 'Jim', 'Bob Sponge'], ['Carol', 'Bob', ''] ], options: {allowHtml : true} } }, methods: { onChartReady (chart, google) { var chart = new google.visualization.OrgChart(); chart.draw(this.chartData, this.options) } } } </script> 进行with_indifferent_access哈希处理,如下所示-

variant

然后使用相同的语句再次访问。即

variant = variant.with_indifferent_access

我希望这会有所帮助。

答案 2 :(得分:-1)

您可以简单地转换为json并使用它。

variant = variant.as_json

variant['PRDCT-A']