правильное форматирование объекта в json с помощью RABL

У меня есть массив @user_designs с несколькими атрибутами, включая имя, theme_id и токен. В настоящее время мой RABL выглядит так:

collection @user_designs 
attributes :token, :name, :theme_id

и отображает это:

[
    {
        "user_design": {"token":"U081247840","name":"My Design","theme_id":1}},
    {
        "user_design": {"token":"U783042565","name":"facebook images","theme_id":2}
    }
]

то, что id хотел бы видеть в json, выглядит примерно так:

{
     "status" : true,
     "user_designs" : 
           {
                "U081247840": {"name":"My Design","theme_id":1},
                "U783042565": {"name":"facebook images","theme_id":2}
           }

}

Я пытался просматривать документы, но я не мог понять это. Статус - это просто переменная, которую я хочу внедрить независимо от коллекции. Я также хочу, чтобы все пользовательские дизайны были в хэше под названием «пользовательские дизайны», который индексируется по его токену.

Как бы я сделал это в RABL? Я использую рельсы 3.2


person Zyren    schedule 10.07.2012    source источник


Ответы (1)


Я не пробовал это, но это должно работать на основе документов:

collection @user_designs 
extends 'user_designs/show'

В 'user_designs/show'

object @user_design => @user_design.token
attributes :name, :theme_id

Чтобы проиндексировать объекты в коллекции по токену, вы должны сделать это в своем контроллере или определить область заказа в модели.

person T C    schedule 14.07.2012