Rails javascript 中的哈希值,访问值

Rails Hash in javascript, access values

我有以下 javascript 代码:

<input type="hidden" name="query_form_select_ops" id="query_form_select_ops" value='<%= schema%>'  />

<script>
  function select_pk2(cell){
  var val = $('#query_form_opt_'+cell+'_1').val();
  var opts = $('#query_form_select_ops').val();  
  }
</script>

示例:

schema 是一个典型的 ruby 散列:

{ 
  "car"=>{"col"=>"blue", "engine"=>"HHd4M"},
  "train"=>{"col"=>"black", "engine"=>"8495f"}
}

变量 val 有一个值 "train" 和 opts 整个 ruby 散列

要访问 ruby 中 traincolengine:架构 ["train"]。我怎样才能在 javascript 中做同样的事情?
我试过:

var select = opts[val]

但它告诉我 var 未定义。给定散列和其中一个键,如何访问 javascript 中 ruby 散列的值?

schema 哈希转储为 json,然后将其解析回 javascript。像这样:

<input type="hidden" name="query_form_select_ops" id="query_form_select_ops" value='<%= schema.to_json %>'  />

和脚本:

function select_pk2(cell){
  var val = $('#query_form_opt_'+cell+'_1').val();
  var opts = JSON.parse($('#query_form_select_ops').val());  
}

这样您应该能够以您想要的方式访问值。

您示例中散列的每个单独值也是散列,因此您可以使用适当的密钥访问它们。像这样:

opts['car']['col'];