使用RABL创建自定义子节点

时间:2012-01-17 21:09:31

标签: ruby-on-rails ruby json rabl

我想像这样创建JSON:

{
  "field1": "value-1",
  "field2": "value-2",
  "actions": {
    "edit": "/edit/action/url"
  }
}

使用rabl。它不适用于child方法,也不能用node执行 - 得到未知方法错误。那么,是否可以使用rabl模板创建自定义子节点?说这样的话:

collection @datas => :datas
attributes :field1, :field2
child :actions do
  node :edit do
    edit_datas_path :id
  end
end

修改
我选择这个:

node :actions do
  actions = {}
  actions[:edit] = edit_customer_group_path(:id)
  node :foo do
    foos = {}
    foos[:bar] = "hello"
    foos
  end
  actions
end

但下面接受的答案也是正确的。

1 个答案:

答案 0 :(得分:13)

前几天我偶然发现了这个问题。 RABL问题中的这个ticket帮助了我。在您的情况下,我能够使用:

生成适当的JSON
collection @datas
extends "datas/base"
node :actions do
  {:edit => root_path}
end

生成JSON:

{
  id: 1,
  actions: {
            edit: "/"
           }
}

使用RABL 0.5.3