我有以下代码,它返回一个包含@ admin_user.companies:
的数据的json@admin_user = User.find_by_email(email)
render :json=>{:status=>{:code=>200,:token=>@admin_user.authentication_token,
:user=> @admin_user,
:companies => @admin_user.companies }}
每家公司也有很多“地点”。如何在json中的@ admin_user.companies中包含每个公司的所有位置?
答案 0 :(得分:7)
传统方式是使用
render json: @admin_user.companies, include: :locations
(有关更多选项,请参阅#as_json
。)
您不需要在JSON中包含状态代码,因为它已经在HTTP标头中。因此,以下内容可能会使您接近所需。
render :json => @admin_user,
:include => {
:companies => { :include => :locations },
},
:methods => :authentication_token
这只是一个例子。您必须配置:include
和:methods
才能获得您想要的内容。要获得更细粒度的控制,请查看JBuilder或RABL。
答案 1 :(得分:0)
另一种方法是使用jbuilder,它允许您对JSON的生成方式进行更精细的控制:
jbuilder
gem添加到您的应用JBuilder.encode
生成JSON .json.jbuilder
目录views
个模板