我的rails JSON中的嵌套对象

时间:2018-03-20 10:50:00

标签: ruby-on-rails json

我想为我的Event模型创建一个嵌套的JSON格式。

"event"   {
  "quiz": {
    "name": "",
    "desc": "",
    "events"[
   {
    "name": "general quiz",
    "desc": ""
    }]

  "dance":{
    "name":"",
    "desc":"",
    "events"[{
    "name":"solo dance",
    "desc":""
    }]
   }

基本上,我希望将events分类为quizdance等名称下的实际事件,并且每个事件都会有单独的事件,如独奏,群舞等关于我如何做到这一点的任何提示(有或没有jbuilder)

2 个答案:

答案 0 :(得分:1)

所以最简单的方法imho只是构建一个哈希结构,看起来像你希望你的json看起来然后将哈希转换为json。

因此,对于该示例,让我们迭代事件并假设每个事件都知道如何将自身转换为json:

简单方法:

events_hash = { "quizes": [], "dances": []}
events.each do |event| 
  event_type = event.quiz? ? "quizes" : "dances"
  events_hash[event_type] << event.to_json 
end 
events_hash.to_json 

这应该让你开始。

(我简化了你的例子的json结构)

答案 1 :(得分:1)

考虑到你有所有型号和&amp;正确定义关系,看看序列化器。

https://github.com/rails-api/active_model_serializers