Rails按外来属性

时间:2016-04-12 18:01:55

标签: ruby-on-rails activerecord

我有这些疑问:

@collections = Collection.all()
render :json => @collections.as_json(
              :include => :items
            )

@collection = Collection.find(params[:id])

对于LIST和GET方法。集合有零个或多个项目。 我在Items中定义了与belongs_to字段的关系,在Collection中定义了has_many字段,并且工作正常。

然后,当我查询集合并呈现JSON时,我想通过一个名为number的整数变量对项目进行排序,该变量属于Item。

我尝试了这个,但它不起作用:

@collections = Collection.sort_by &:item_number

我想按编号对Collection内部的Item列表进行排序。这就是@collections = Collection.all()返回的内容,我想按编号对项目列表进行排序。

  

{" ID":1,"标题":"收集和#34;"积":"箭头" " created_at":" 2016-04-11T17:53:38.892Z""的updated_at":" 2016-04-11T17:53:38.892 ž&#34 ;,   "项目":[{" ID":10,"标题":"项目   12"" collection_id":1," created_at":" 2016-04-11T23:27:08.302Z""的updated_at&#34 ;:" 2016-04-11T23:27:08.302Z""数":12},{" ID":11,"标题&# 34;:"项目   102"" collection_id":1," created_at":" s2016-04-11T23:27:24.649Z""的updated_at&#34 ;:" 2016-04-11T23:27:24.649Z""数" 10},{" ID":12,"标题&# 34;:"项目   9"" collection_id":1," created_at":" 2016-04-11T23:27:53.201Z""的updated_at&#34 ;:" 2016-04-11T23:27:53.201Z""数":9}]}

1 个答案:

答案 0 :(得分:1)

您可以在Collection型号

中为has_many :items, -> { order(:number) } 关系添加/customer/7854/order/125
customerID

这将为您提供按编号

排序的集合中的项目列表