Rails to_json包括与limit的关联

时间:2014-10-02 09:47:31

标签: ruby-on-rails ruby-on-rails-4 associations to-json

我正在使用下面的关联呈现一条记录

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 }})

1 个答案:

答案 0 :(得分:0)

  1. 如果您要创建复杂的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格式呈现数据,同时保持控制器的清洁和安全。整齐。

  2. 如果Scheme.where("id=?", params[:id]).first是唯一的,Scheme.find(params[:id])代码中id的使用可缩短为<{p}