/ / Rails to_json vrátane asociácie s limitom - ruby-on-rails, ruby-on-rails-4, asociácie, do-json

Rails to_json vrátane spojenia s limitom - rubín-na-koľajnice, rubín-na-koľajnice-4, združenia, to-json

Zobrazujem jeden záznam s priradením, ako je uvedené nižšie

render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue] }})

združenie

Scheme has_many   navs
Nav    belongs_to scheme

Potrebujem urobiť len posledný záznam v Nav, alevyššie bude tlačiť všetky navs, pretože jeho jeden k mnohým. Snažil som sa: limit => 1 a objednávanie v desc, ale limit sám nefunguje.Každá pomoc bude ocenený.

render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue], :limit => 1 }})

odpovede:

0 pre odpoveď č. 1
  1. Ak znovu vytvoríte zložitý formát json, skúste to gem "jbuilder" zavedené v RailsCast opustiť štruktúru na zobrazenie.

    Vo vašom show.json.jbuilder zobraziť, urobiť niečo ako:

    @scheme = Scheme.find(params[:id]) json.scheme @scheme.as_json json.extract! @scheme.navs.last, :schemeCode, :navDate, :navValue

    , Ktorý bude poskytovať dáta vo formáte json, rovnako ako udržať váš regulátor čistý a čistý.

  2. Použitie Scheme.where("id=?", params[:id]).first vo vašom kóde je možné skrátiť ako Scheme.find(params[:id]) Ak tvoj id je jedinečný.