从RABL中删除节点

时间:2016-04-26 23:53:43

标签: ruby-on-rails json rabl

我是rails的新手,我正在尝试为我的应用程序创建API。我也使用rabl来生成我的JSON响应。在我的rabl模板中,我想发送一个时间戳和一组项目。

代码如下所示:

object false
node(:timestamp){CourseType.maximum("updated_at")}
child(@course_types){attributes :id, :name, :deleted}

我希望得到一个看起来像这样的对象:

{"course_types":
    [{"id":2,"name":"Driving","deleted":false},
     {"id":4,"name":"Cooking","deleted":false}],
 "timestamp":"2016-04-25 16:22:57 UTC"}

但是我得到了这个:

{"course_types":
    [{"course_type":
        {"id":2,"name":"Driving","deleted":false}},
     {"course_type":
        {"id":4,"name":"Cooking","deleted":false}}],
 "timestamp":"2016-04-25 16:22:57 UTC"}

关于如何解决这个问题的任何想法?

由于

1 个答案:

答案 0 :(得分:1)

Rabl允许您通过初始化程序

在所有视图中控制这些子节点

https://www.digitalocean.com/community/tutorials/scaling-ruby-on-rails-setting-up-a-dedicated-mysql-server-part-2

然后设置正确的配置组合

# config/initializers/rabl_init.rb
require 'rabl'
Rabl.configure do |config|
  config.include_json_root = true
  config.include_child_root = false  
end

这可能是这些问题的重复

Rabl, remove parent element of children

Removing child root nodes in RABL