Строки являются изменяемыми, поэтому каждый раз, когда вы ссылаетесь "foo"
ruby создает новый объект. Вы можете проверить это, позвонив "foo".object_id
в irb. С другой стороны, символы - нет, поэтому каждый раз, когда вы ссылаетесь на :foo
, ruby возвращает один и тот же объект.
Что касается "стиля" и "последовательности", вы всегда можете использовать hash.symbolize_keys!
для полученных вами данных json, это превратит все строковые ключи в символы. И наоборот - hash.stringify_keys!
чтобы снова сделать их строками.