Я новичок в Ruby on Rails, поэтому, пожалуйста, прости меня, если это очевидный вопрос.
Я возвращаю объект JSON из метода контроллера (скажем, имя класса - "foo", и у него есть свойство "bar").
Я ожидал, что это будет сериализовано как:
{"bar" : "barValue" }
Однако, похоже, он сериализуется как
{"foo" : {"bar" : "barValue"}}
Это кажется несовместимым с a.) Что делают другие языки, b.) (Что более важно), что делает javascript.
Скажем, я определил тот же класс foo в Javascript:
var fooInstance = new Foo();
fooInstance.bar = "barValue";
И затем я делаю это, используя одну из библиотек Javascript JSON (например, https://github.com/douglascrockford/JSON-js). Тогда на выходе получается что-то вроде:
{"bar" : "barValue" }
Но входы (а также выходы) в методы моего контроллера ожидают:
{"foo" : {"bar" : "barValue"}
Так что я должен написать код по этим строкам, чтобы он работал:
var fooInstance = new Foo();
fooInstance.bar = "barValue";
var dummyObjectToKeepRailsHappy = { foo : fooInstance};
Итак, я неправильно выполняю сериализацию Rails? Или есть причина, по которой он так работает?