Ruby on rails Can';t使用rails中的列(:)从哈希读取数据

Ruby on rails Can';t使用rails中的列(:)从哈希读取数据,ruby-on-rails,Ruby On Rails,a={“项目”=>{“id”=>“34567”,“名称”=>“AAX项目1清单23”, “说明”=>“AAX项目1清单23”,“单价”=>“2342”, “物料类型”=>“库存”、“跟踪现有数量”=>“正确”, “现存量”=>“50000”,“库存开始日期”=>{(3i)”=>“4”,“2i”=>“5”, “(1i)”=>“2016”},“公司id”=>“1”,“项目类型”=>“库存”, “金额”=>“1232”} 输出: a['item']={“id”=>“34567”,“name”=>“AA

a={“项目”=>{“id”=>“34567”,“名称”=>“AAX项目1清单23”, “说明”=>“AAX项目1清单23”,“单价”=>“2342”, “物料类型”=>“库存”、“跟踪现有数量”=>“正确”, “现存量”=>“50000”,“库存开始日期”=>{(3i)”=>“4”,“2i”=>“5”, “(1i)”=>“2016”},“公司id”=>“1”,“项目类型”=>“库存”, “金额”=>“1232”}

输出:

a['item']={“id”=>“34567”,“name”=>“AAX项目1清单23”, “说明”=>“AAX项目1清单23”,“单价”=>“2342”, “物料类型”=>“库存”、“跟踪现有数量”=>“正确”, “现存量”=>“50000”,“库存开始日期”=>{(3i)”=>“4”,“2i”=>“5”, “(1i)”=>“2016”}

a[:项]=零

那么,如何将数据作为[:项]获取呢。我必须更改什么?

您可以使用来更改哈希的符号键

a = {"item"=>{"id"=>"34567", "name"=>"AAX item 1 Inventory23", "description"=>"AAX item 1 Inventory23", "unit_price"=>"2342", "item_type"=>"Inventory", "track_qty_on_hand"=>"true", "qty_on_hand"=>"50000", "inv_start_date"=>{"(3i)"=>"4", "(2i)"=>"5", "(1i)"=>"2016"}}, "company_id"=>"1", "item_type"=>"Inventory", "amount"=>"1232"}

output =  a.symbolize_keys
结果:

{:item=>{"id"=>"34567", "name"=>"AAX item 1 Inventory23", "description"=>"AAX item 1 Inventory23", "unit_price"=>"2342", "item_type"=>"Inventory", "track_qty_on_hand"=>"true", "qty_on_hand"=>"50000", "inv_start_date"=>{"(3i)"=>"4", "(2i)"=>"5", "(1i)"=>"2016"}}, :company_id=>"1", :item_type=>"Inventory", :amount=>"1232"}

'item'
是一个字符串。
:项
是一个符号

您可以使用
.to_sym
方法将字符串转换为符号,这样可以:

a['item'.to_sym]
或者从一开始就将其声明为符号

a = { :item => {"id"=>"3...
此外,此方法将哈希中的所有键更改为符号:

谢谢你给我答案