Вы можете сделать пост-обработку. Вам нужно будет дать отдельные имена для ключей 'id' внутри ваших подшашек, но если вы сделаете это, что-то вроде этого должно сработать ... так или иначе, пока все хорошо:
с учетом сохраненного хэша, например:
x => #<Company id: 16, name: "JRapid", markets: {"markets"=>"[{:market_id=>12, :market_name=>\"enterprise software\", :parents=>[{:parent_id=>12, :name=>\"enterprise software\", :grandparents=>{:parent_id=>12, :name=>\"enterprise software\"}}]}, {:market_id=>38, :market_name=>\"cloud computing\", :parents=>[{:parent_id=>38, :name=>\"cloud computing\", :grandparents=>{:parent_id=>38, :name=>\"cloud computing\"}}]}, {:market_id=>409, :market_name=>\"development platforms\", :parents=>[{:parent_id=>409, :name=>\"development platforms\", :grandparents=>{:parent_id=>409, :name=>\"development platforms\"}}]}, {:market_id=>1132, :market_name=>\"developer tools\", :parents=>[{}]}]"}, locations: {"locations"=>"[{:location_id=>1624, :location_name=>\"california\", :parents=>[{}]}, {:location_id=>1703, :location_name=>\"sunnyvale\", :parents=>[{}]}]"}, follower_count: 8, high_concept: "Rapid development Java cloud platform", product_desc: "JRapid is a Platform as a Service and is the fastes...", urls: {"blog_url"=>"http://www.jrapid.com/blog", "logo_url"=>"https://angel.co/images/icons/startup-nopic.png", "thumb_url"=>"https://angel.co/images/icons/startup-nopic.png", "company_url"=>"http://www.jrapid.com", "twitter_url"=>"http://www.twitter.com/JRapid", "angellist_url"=>"https://angel.co/jrapid"}, status: nil, created_at_or_updated_at: {"created_at"=>"2010-07-21T18:48:32Z", "updated_at"=>"2011-05-07T20:00:37Z"}, screenshots: {"screenshots"=>"[[nil]]"}, created_at: "2012-08-07 05:37:54", updated_at: "2012-08-07 05:37:54">
Вы могли бы сделать что-то вроде этого:
x = x.locations
x = x['locations']
x = eval(x)
x[0][:id]
#=> 1624
ВНИМАНИЕ: запуск eval () для заданной строки займет НИЧЕГО. Так что это может быть не решение «производственного режима». На самом деле это не так. Но это будет работать на время, пока вы не научитесь использовать какое-то реальное решение Document-DB.
СНОВА: ВНИМАНИЕ! Запускать eval может быть опасно!
(если это помогло вам, пожалуйста, один раз - я забанен в SO за то, что задаю слишком много вопросов, и мне нужно больше точек повторения, чтобы я мог снова задавать вопросы)