我有用户
和项目
模型。我想建立一个JSON响应,看起来像这样:
{
用户:
{用户名:鲍勃,富:无论,酒吧:你好!},
项目:
{ID:1,名:一,ZIM:行星,吉尔:土},
{ID:2,名:二,ZIM:行星,吉尔:火星}
]
}
不过,我的用户
和项目
模式比只是那些更多的属性。我找到了一种方法来得到这个工作,但提防,它不是pretty的...请帮助...
接下来的部分包含了原来的问题。最后一节显示了新的解决方案。
类的HomeController<的ApplicationController
DEF观察
respond_to代码做|格式|
format.js {渲染:JSON => Observation.new(CURRENT_USER,@items).to_json}
结束
结束
结束
#注:这是不是的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]))
}
结束
结束
as_json
而不是的ActiveRecord::Serialization#as_json文档是pretty的稀疏。下面是简单的:
as_json(选项=无)
[节目源]
有关 to_json
VS as_json
的详细信息,请参阅的