/ / Rails to_json incluye asociación con limit - ruby-on-rails, ruby-on-rails-4, asociaciones, to-json

Rails to_json incluyendo asociación con límite - ruby-on-rails, ruby-on-rails-4, asociaciones, to-json

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 № 1
  1. Si 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.

  2. El uso de Scheme.where("id=?", params[:id]).first en su código se puede acortar como Scheme.find(params[:id]) si tu id es único.