Это изменение произошло при переключении с бэкэнда JSON ActiveSupport на MultiJson , который был включен в Rails 3.1.0.rc1.Согласно команде MultiJson текущее поведение является правильным, а предыдущая реализация была ошибочной из-за спецификации RFC4627 грамматики JSON:
2. JSON Grammar
A JSON text is a sequence of tokens. The set of tokens includes six
structural characters, strings, numbers, and three literal names.
A JSON text is a serialized object or array.
JSON-text = object / array
Asни "abc"
, ни "/"abc/""
не являются сериализованными объектами или массивами, ошибка при попытке их декодирования уместна.
Диаграммы с сайта JSON усиливают эту спецификацию.
Как говорится, это может означать ошибку в реализации to_json, которая приводит к:
ruby-1.9.2-p180 :001 > "abc".to_json
=> "\"abc\""