2016-04-12 8 views
0

Ich habe diese Abfragen:Rails bestellen aktive Datensatz von ausländischem Attribute

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

und

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

Für LIST und GET-Methoden. Und eine Sammlung hat null oder viele Elemente. Ich habe die Beziehung mit dem Feld "assign_to" in Items und dem Feld "has_many" in Collection definiert, und das funktioniert einwandfrei.

Dann, wenn ich die Sammlungen abfragen und den JSON rendern möchte ich die Elemente durch eine ganzzahlige Variable namens Nummer, die zu Element gehört.

Ich habe versucht, diese aber es funktioniert nicht:

@collections = Collection.sort_by &:item_number 

Ich möchte die Liste der Artikel sortieren, die innerhalb der Sammlung von Zahl ist. Dies ist, was @collections = Collection.all() zurückgibt, und ich möchte die Liste der Elemente nach Nummer sortieren.

{ "id": 1, "title": "Collection", "Plot": "Pfeil", "created_at": "2016-04-11T17: 53: 38.892Z", "updated_at": "2016-04-11T17: 53: 38.892Z", "Artikel": [{"id": 10, "title": "Artikel 12", "collection_id": 1, "created_at": "2016-04 -11T23: 27: 08.302Z "," updated_at ":" 2016-04-11T23: 27: 08.302Z "," Nummer ": 12}, {" id ": 11," title ":" Artikel 102 ", "collection_id": 1, "created_at": "s2016-04-11T23: 27: 24.649Z", "aktualisiert_at": "2016-04-11T23: 27: 24.649Z", "number": 10}, {"id ": 12," title ":" Artikel 9 "," collection_id ": 1," created_at ":" 2016-04-11T23: 27: 53.201Z "," updated_at ":" 2016-04-11T23: 27: 53.201Z "," Nummer ": 9}]}

+1

Sie sortiert geben möchte Summe der ganzen Zahlen von sortieren, was ? Holen Sie sich die Instanz, bitte, was willst du wirklich? – Ilya

+0

Hallo! Ich habe eine Liste von Artikeln innerhalb der Sammlung, ich möchte die Artikel, die sich in der Sammlung befinden, nach der Nummer – lapinkoira

+0

sortieren. Sie möchten also Ihre Sammlungen abfragen und sie mit sortierten Artikeln erhalten? Was sind die Gegenstände? Ein anderes Modell mit einer anderen Tabelle? Wenn das der Fall ist, sollte 'Collection.all' Sie Ihre Sammlungen ohne die entsprechenden Elemente zurückgeben. – VonD

Antwort

1

Sie order auf Ihre has_many Beziehung in der

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

Collection Modell hinzufügen können, dass Sie die Liste der Elemente in der Sammlung von Nummer

+0

Muss ich ASC oder DESC angeben? – lapinkoira

+0

es ist ASC standardmäßig können Sie 'Reihenfolge (Nummer:: Asc)' –

+0

Muss ich eine Migration erstellen? – lapinkoira

Verwandte Themen