Estoy renderizando un registro con asociación como abajo
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue] }})
Asociaciones
Scheme has_many navs
Nav belongs_to scheme
Necesito renderizar solo el último registro en Nav, peroarriba se imprimirán todas las naves desde su uno a muchos. Intenté: limit => 1 y ordenándolo en desc, pero los límites se limitan a no funcionar. Cualquier ayuda será apreciada.
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue], :limit => 1 }})
Respuestas
0 para la respuesta № 1Si está creando un formato json complicado, intente
gem "jbuilder"
introducido en RailsCast Salir de la estructura para ver.En tus
show.json.jbuilder
Mira, haz algo como:@scheme = Scheme.find(params[:id]) json.scheme @scheme.as_json json.extract! @scheme.navs.last, :schemeCode, :navDate, :navValue
que procesará los datos en formato json y mantendrá su controlador limpio y ordenado.
El uso de
Scheme.where("id=?", params[:id]).first
en su código se puede acortar comoScheme.find(params[:id])
si tuid
es único.