2016-05-30 2 views
2

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" => "инвентаризации", "количество" => "одна тысяча двести тридцать две"}Невозможно прочитать данные из хеша с использованием столбца (:) в рельсах

Выход:

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"}}

а [: пункт] = ноль

Итак, как получить данные в виде [: пункт]. Что мне нужно изменить?

ответ

0

вы можете использовать symbolize_keys изменить символизировать ключи хэша

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"} 
+0

Спасибо за предоставленную мне ответ –

1

'item' является строкой. :item является символом.

Вы можете преобразовать строку в символ с методом .to_sym, так что это будет работать:

a['item'.to_sym] 

или объявить его как символ с самого начала.

a = { :item => {"id"=>"3... 

Кроме того, этот метод меняет все ключи в хэш-символам: http://api.rubyonrails.org/classes/Hash.html#method-i-symbolize_keys

Смежные вопросы