如何构建由多个模型的Rails的JSON响应多个、模型、JSON、Rails

2023-09-09 22:06:11 作者:稚女.

首先,将所需的结果

我有用户项目模型。我想建立一个JSON响应,看起来像这样:

  {
  用户:
    {用户名:鲍勃,富:无论,酒吧:你好!},

  项目:
    {ID:1,名:一,ZIM:行星,吉尔:土},
    {ID:2,名:二,ZIM:行星,吉尔:火星}
  ]
}
 

不过,我的用户项目模式比只是那些更多的属性。我找到了一种方法来得到这个工作,但提防,它不是pretty的...请帮助...

更新

接下来的部分包含了原来的问题。最后一节显示了新的解决方案。

我的黑客

home_controller.rb

 类的HomeController<的ApplicationController

  DEF观察
    respond_to代码做|格式|
      format.js {渲染:JSON => Observation.new(CURRENT_USER,@items).to_json}
    结束
  结束

结束
 

observation.rb

 #注:这是不是的ActiveRecord的子类::基地
#这个类只是充当一个容器聚合所有可观察的对象
课堂观察
  attr_accessor:用户:项目

  高清初始化(用户资料)
    self.user =用户
    self.items =项目
  结束

  #的JSON必须是在它之前发送到`to_json`方法在home_controller否则JSON将被转义德codeD ...
  # 真是一团糟!
  高清to_json
    {
      :用户=>的ActiveSupport :: JSON.de code(user.to_json(:只=>:用户名:方法=> [:foo,那么:巴])),
      :项目=>的ActiveSupport :: JSON.de code(auctions.to_json(:只=> [:ID,:姓名]:方法=> [:ZIM,:GIR]))
    }
  结束
结束
 
基于 OData 模型和 JSON 模型的 SAP UI5 表格控件行项目的添加和删除实现

看马!没有更多的黑客!

覆盖 as_json 而不是

的ActiveRecord::Serialization#as_json文档是pretty的稀疏。下面是简单的:

  as_json(选项=无)
  [节目源]
 

有关 to_json VS as_json 的详细信息,请参阅的

 
精彩推荐
图片推荐