Rails 3: упаковка ответа as_json дополнительными строками - PullRequest
1 голос
/ 11 июля 2011

Я был очень рад узнать о as_json, чтобы сделать мой код СУХИМ.И я добавил в модель следующее:

class ProductType < ActiveRecord::Base
  has_many :component_types

  def as_json(parameter)
    {:name => self.name,
     :description => self.description,
     :children => self.componentTypes}
  end
end

Это здорово.Единственное, что для моего клиентского приложения, мне нужно обернуть полученный ответ в этот формат (где «items» содержит то, что создано as_json):

{
  "identifier": "name",
  "label": "name",
  "items": 
    [
      {
        "name": "myName1",
        "description": "myDesc1",
        "children":[]
      },
      {
        "name": "myName2",
        "description": "myDesc2",
        "children":[]
      }
    ]
}

1 Ответ

2 голосов
/ 11 июля 2011

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

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