作为JSON结果的一部分,返回基于id的扩展记录

时间:2011-04-19 00:05:31

标签: ruby-on-rails ruby json

我有一个Rails服务器将数据作为JSON返回到我的移动应用程序,如下所示,

在控制器中,

format.json { render :json => @game }

返回,

{"game":{"created_at":"Thu, 14 Apr 2011 11:14","title":"Banana throwing","updated_at":"Thu, 14 Apr 2011 11:16","id":5,"day":"2011-07-14","location_id":5}}

返回的记录包括从“游戏”表到另一个表“位置”的引用,特别是该表中id为5的条目。

现在,我的移动应用程序可以跳过一些箍来解析另一个表中的location_id,但如果最初返回的JSON已经解析了location_id值并且包含了扩展,那么这将更加直截了当。原始结果中的“位置”记录,例如,

{"game":{"created_at":"Thu, 14 Apr 2011 11:14","title":"Banana throwing","updated_at":"Thu, 14 Apr 2011 11:16","id":5,"day":"2011-07-14","location":{"place":"Buckingham Palace"}}}

...位置表中id为5的条目已扩展为嵌套JSON。

是否可以在服务器端执行此操作,如果可以,如何执行此操作?

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:5)

尝试:

format.json { render :json => @person.to_json(:include => [:location]) }

对于简洁的回复感到抱歉,to_json:include非常相似。我刚才没有在控制器中对它进行过测试,但是在控制台上试了一下它就可以了。