Создайте собственный дочерний узел с помощью RABL

Я хотел бы создать JSON следующим образом:

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

используя рабл. Это не работает с методом 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

Но принятый ответ ниже тоже правильный.


person NilColor    schedule 17.01.2012    source источник


Ответы (1)


Я просто наткнулся на эту проблему на днях. Мне помог этот тикет в вопросах RABL. В вашем случае я смог сгенерировать правильный JSON, используя:

collection @datas
extends "datas/base"
node :actions do
  {:edit => root_path}
end

сгенерированный JSON:

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

Использование RABL 0.5.3

person Simon Bagreev    schedule 17.01.2012