Активный результат записи и преобразованный JSON - PullRequest
0 голосов
/ 23 марта 2011

Мне нужно преобразовать активную запись JSON в нечто вроде этого:

{
       cols: [{id: 'task', label: 'Task', type: 'string'},
                {id: 'hours', label: 'Hours per Day', type: 'number'}],
       rows: [{c:[{v: 'Work'}, {v: 11}]},
              {c:[{v: 'Eat'}, {v: 2}]},
              {c:[{v: 'Commute'}, {v: 2}]},
              {c:[{v: 'Watch TV'}, {v:2}]},
              {c:[{v: 'Sleep'}, {v:7, f:'7.000'}]}
             ]
}

Это полностью отличается от того, что to_json возвращает из activerecord. Какой самый рубиновый способ преобразовать JSON?

1 Ответ

0 голосов
/ 23 марта 2011

Переопределите метод to_json в вашей модели.

# your_model.rb, implement an instance method to_json
def to_json(options = {})
  {
    'cols' => [{'id' => 'whateveryoulike'}],
    'rows' => [{'id' => 'whateveryoulike'}]
  }.to_json(options)
end

Помните, важно принять options в качестве параметра для этого метода и передать его в to_json хэша (или любого другого *).1006 * звоните, вы делаете внутри этого метода, в этом отношении).В противном случае метод может работать не так, как ожидается при сериализации JSON коллекции.И, разумеется, поскольку вы не предоставили никаких подробностей о том, что представляет собой ваша модель и как она отображается в желаемом ответе JSON, вам придется реализовать представление столбцов и строк так, как вам нравится.

Это такжеотносится к to_xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...