渲染JSON并从模型中配对记录

时间:2015-12-30 13:41:42

标签: ruby-on-rails json

我正在使用rails API,我想以特定方式呈现JSON文件。 我有一个名为Store的模型,在这个模型中,我有像State和City这样的记录。我的问题是我希望渲染JSON看起来像这样:

{ 
"Arizona": [
      "Phoenix",
      "Tucson"
    ],
    "California": [
      "Anaheim",
      "Los Angeles",
      "San Diego",
      "San Francisco"
    ],
    "Colorado": [
      "Denver"
    ],
}

我可能在模型中有许多名为Colorado或名称为California的记录,但每个加州记录都有自己的城市名称,例如:

这是我的模特

|  state   |   city   |
-----------------------
|California| Anaheim  |
|Colorado  | Denver   |
|California| San Diego|

依旧......

所以我想配对属于唯一状态的每个城市,所以我的JSON只会显示一次州名。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

MemoryError

这将返回:

  

{“California”=> [ModelObject2,ModelObject2],“Colarado”=>   [ModelObject1]}

现在我们需要用城市名称替换第二个对象部分,以便遍历第二部分并从该对象获取城市,然后Model.select(:state, :city).group{|add| address.state} 转换为json对象。

to_json

希望这会对你有所帮助!!

ref