【发布时间】:2011-07-05 09:07:51
【问题描述】:
我是 Ruby on Rails 的新手,所以如果这是一个明显的问题,请原谅我。
我从控制器方法返回一个 JSON 对象(假设类名是“foo”并且它有一个属性“bar”)。
我希望这会序列化为:
{"bar" : "barValue" }
但是,它似乎序列化为
{"foo" : {"bar" : "barValue"}}
这似乎与 a.) 其他语言的作用,b.)(更重要的是)javascript 的作用不相符。
假设我在 Javascript 中定义了相同的类 foo:
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 序列化吗?或者有什么理由让它这样工作?
【问题讨论】:
-
如果你正在使用 ActiveRecord 对象,你可以在 application.rb 中设置
config.active_record.include_root_in_json = false
标签: ruby-on-rails ruby json serialization