Rails jbuilder移除头部

6

我正在为Rails应用添加jbuilder - 这是一个非常好的工具!

我已经得到了想要的记录列表,但它有一些额外的输出我不需要。

以下是jbuilder代码:

json.locations @locations do |location|
 json.id location.id
 json.name location.name
end

输出结果为:
{
  - locations: [
    {
      id: 1,
      name: "Name 1"
    },
    {
      id: 2,
      name: "Name 2"
    },

我需要的是:

[
    {
      id: 1,
      name: "Name 1"
    },
    {
      id: 2,
      name: "Name 2"
    },

我该如何删除 { - locations:

???

谢谢!!

更新:

我希望有一行jbuilder代码可以排除根目录。


我需要在返回对象时排除根元素@foo = { bar: true, dry: false } json.foo @foo 将打印出 {"foo": { "bar": true, "dry": false }} 通过使用 merge! 函数,我成功地实现了目标json.merge! @foo输出结果为{"bar": true, "dry": false} - Ivan Bajalovic
1个回答

12

你能检查一下是否有以下配置吗?

ActiveRecord::Base.include_root_in_json = false

那应该可以解决问题。

更新

请尝试这个:

json.array!(@locations) do |location|
 json.id location.id
 json.name location.name
end

谢谢你的帮助!我不确定应该查看哪个文件? - Reddirt
我相信它是 config/application.rb - mathieugagne
但是,这将会移除所有的 JSON feeds。对吗?我在另一个问答中看到了这段代码 = my_model.to_json(:root => false)。但是,我正在使用 jbuilder,所以我在我的控制器中没有 JSON 语句。 - Reddirt
1
我希望有一行jbuilder的代码可以排除根目录。 - Reddirt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接