Rails 3:用额外的行包装as_json响应

时间:2011-07-11 15:26:10

标签: ruby-on-rails ruby json ruby-on-rails-3

我很高兴得知as_json让我的代码DRY。我已将以下内容添加到模型中:

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 个答案:

答案 0 :(得分:2)

覆盖as_json存在很多限制,您的问题就是其中之一。我建议您查看RABL宝石,因为我认为它可以帮助您实现目标。