[1] pry(main)> o.items
=> [{"78"=>"{\"size\"=>\"96\", \"side\"=>[]}"}]
[2] pry(main)> o.items[0]
=> {"78"=>"{\"size\"=>\"96\", \"side\"=>[]}"}
[3] pry(main)> o.items[0]['78']
=> "{\"size\"=>\"96\", \"side\"=>[]}"
[4] pry(main)> o.items[0]['78']["side"]
=> "side"
행 4는 빈 배열을 반환하지 않습니까? 어떻게 돌아 오는 "편"이 되었습니까?값 대신 키를 반환하는 루비 해시 배열?
편집 나는이 해시 (이것은 PostgreSQL의에 hstore의 배열)의 배열을 저장 한 후 발생했습니다.
예 : 의도 한대로 해시를 반환합니다.
o.items << {78 => {"size" => 1, "side" => []}}
o.items
=> [{"78"=> {"size"=>"1", "side"=>[]}}]
는하지만
o.save
o.items
=> [{"78"=>"{\"size\"=>\"96\", \"side\"=>[]}"}]
을 저장 한 후 나는를 변경하기 전에 해시로 다시 문자열로 변환 ([ '78'] o.items [0]) 평가하고 결국 해시 및 업데이트하기. 이것은 매우 불필요한 것 같습니다. 더 좋은 옵션이 있습니까?
자세히 살펴보십시오. 'o.items [0] [ '78']'는 해시가 아니라 문자열입니다. – Aetherus
@Aetherus awesome, thanks – echan00
@Aetherus 그 질문에 답하는 것처럼 보입니다. 아마 답이 나올 수 있도록 작성해야합니다. – thesecretmaster