活动记录结果和转换后的JSON

时间:2011-03-23 07:05:41

标签: ruby-on-rails json activerecord

我需要将活动记录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 :(得分:0)

覆盖模型中的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调用的to_json非常重要,那件事)。否则,该方法可能无法在集合JSON序列化上按预期运行。当然,既然您没有详细说明您的模型是什么以及它如何映射到所需的JSON响应,您将必须实现cols和rows的表示。

这也适用于to_xml