Странно, они должны работать одинаково и делать для меня:
>> user = {"user"=>
.. {"bio"=>"rubyist",
.. "created_at"=>"2011-05-03T15:21:46+02:00",
.. "email"=>"paul@pauldix.net",
.. "id"=>61, "name"=>"paul",
.. "updated_at"=>"2011-05-03T15:21:46+02:00"}}.to_json
#=> "{"user":{"bio":"rubyist","created_at":"2011-05-03T15:21:46+02:00","email":"paul@pauldix.net","id":61,"name":"paul","updated_at":"2011-05-03T15:21:46+02:00"}}"
>> attributes = JSON.parse(user)["user"]
#=> {"bio"=>"rubyist", "created_at"=>"2011-05-03T15:21:46+02:00", "email"=>"paul@pauldix.net", "id"=>61, "name"=>"paul", "updated_at"=>"2011-05-03T15:21:46+02:00"}
>> attributes = JSON.parse(user)['user']
#=> {"bio"=>"rubyist", "created_at"=>"2011-05-03T15:21:46+02:00", "email"=>"paul@pauldix.net", "id"=>61, "name"=>"paul", "updated_at"=>"2011-05-03T15:21:46+02:00"