我正在使用下面的关联呈现一条记录
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue] }})
关联
Scheme has_many navs
Nav belongs_to scheme
我需要在Nav中仅渲染最后一条记录,但上面会打印所有导航,因为它的一对多。我试过了:limit => 1,并在desc中订购,但限制自己不工作。任何帮助将不胜感激。
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue], :limit => 1 }})
答案 0 :(得分:0)
如果您要创建复杂的json格式,请尝试RailsCast中引入的gem 'jbuilder'
以便查看结构。
在show.json.jbuilder
视图中,请执行以下操作:
@scheme = Scheme.find(params[:id])
json.scheme @scheme.as_json
json.extract! @scheme.navs.last, :schemeCode, :navDate, :navValue
将以json格式呈现数据,同时保持控制器的清洁和安全。整齐。
如果Scheme.where("id=?", params[:id]).first
是唯一的,Scheme.find(params[:id])
代码中id
的使用可缩短为<{p}