Renderuję jeden rekord ze skojarzeniem takim jak poniżej
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue] }})
Wspomnienia
Scheme has_many navs
Nav belongs_to scheme
Muszę zrenderować tylko ostatni rekord w Nav, alepowyżej wydrukuje wszystkie nawigacje od jednego do wielu. Próbowałem: limit => 1 i zamawianie go w opisie, ale samo ograniczenie nie działa. Każda pomoc będzie mile widziana.
render :json => Scheme.where("id=?", params[:id]).first
.to_json(:include => { :navs => { :only => [:schemeCode,:navDate,:navValue], :limit => 1 }})
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli tworzysz skomplikowany format Json, spróbuj
gem "jbuilder"
wprowadzone w RailsCast pozostawić strukturę do oglądania.W Twoim
show.json.jbuilder
zobacz, zrób coś takiego:@scheme = Scheme.find(params[:id]) json.scheme @scheme.as_json json.extract! @scheme.navs.last, :schemeCode, :navDate, :navValue
co wyrenderuje dane w formacie json, a także utrzyma kontroler w czystości i porządku.
Sposób użycia
Scheme.where("id=?", params[:id]).first
w kodzie można skrócić jakoScheme.find(params[:id])
Jeżeli twójid
jest unikalny.