2016-04-12 9 views
0

によってアクティブなレコードを注文:リストについてRailsは、私はこれらのクエリを持っている外国人の属性

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

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

とは、メソッドをGET。コレクションにはゼロ個以上のアイテムがあります。 Itemsのbelongs_toフィールドとCollectionのhas_manyフィールドとの関係を定義しました。これは問題なく動作しています。

次に、コレクションにクエリを実行してJSONをレンダリングするとき、itemに属するnumberという整数変数でアイテムを並べ替えたいと思います。

私はこれを試してみましたが、それは働いていない:

@collections = Collection.sort_by &:item_number 

私は数でコレクション内にある項目のリストをソートしたいです。これは@collections = Collection.all()が返すものであり、アイテムのリストを番号順にソートしたいと思います。

{ "ID":1、 "タイトル": "コレクション"、 "プロット": "矢印"、 "のcreated_at": "2016-04-11T17:53:38.892Z"、 "updated_atの": "2016-04-11T17:53:38.892Z"、 "アイテム":[{"" id ":10、"タイトル ":"アイテム 12 "、"コレクションID ":1、" created_at ":" 2016-04 "01:23:27:08.302Z"、 "updated_at": "2016-04-11T23:27:08.302Z"、 "number":12}、{"id":11、 "title": "Item 102" "collection_id":1、 "created_at": "s2016-04-11T23:27:24.649Z"、 "updated_at": "2016-04-11T23:27:24.649Z"、 "number":10}、{"id ":12、" title ":" Item 9 "、" collection_id ":1、" created_at ":" 2016-04-11T23:27:53.201Z "、" updated_at ":" 2016-04-11T23:27: 53.201Z "、" number ":9}]}

+1

によって並べ替えコレクション内の項目のリストが表示されますCollectionモデル

has_many :items, -> { order(:number) } 

でのごhas_many関係にorderを追加することができます?インスタンスを取得してください、何を本当にしたいですか – Ilya

+0

こんにちは!私はコレクション内のアイテムのリストを持っています。コレクション内のアイテムを数字でソートしたいのですが – lapinkoira

+0

コレクションを照会し、ソートされたアイテムを受け取ってもらいたいですか?アイテムは何ですか?別のテーブルに裏付けされた別のモデルですか?その場合、 'Collection.all'は対応するアイテムのないコレクションを返します。 – VonD

答えて

1

あなたはあなたが何によっての整数の合計でソートしたい番号

+0

ASCまたはDESCを指定する必要がありますか? – lapinkoira

+0

これはデフォルトではASCですが、 'order(number::asc)'を設定することができます –

+0

マイグレーションを生成する必要がありますか? – lapinkoira

関連する問題