减少哈希对象的深度

时间:2010-06-22 17:43:48

标签: ruby-on-rails ruby hash map hashmap

我有一个来自ActiveRecord的哈希对象。我将在其上调用to_json,但我希望减少返回的对象的深度。以下是我的发现:

@tags = Tag.find_all_by_type("some_type", :select => :name)

@tags.to_json的结果如下:

[{"tag": {"name": "some tag name"}},
 {"tag": {"name": "another tag name"}},
 {"tag": {"name": "etc..."}}]

但是,我希望结果看起来像这样,因为我不需要包含在tag对象中的每个对象:

[{"name": "some tag name"}, {"name": "another tag name"}, {"name": "etc..."}]

我可以通过mapcollect或类似的电话进行此操作吗?

1 个答案:

答案 0 :(得分:2)

如果您将变量ActiveRecord::Base.include_root_in_json设置为false,您将获得所需的行为。

Reference