2016-07-25 6 views
-1

Ich habe category und subcategory TabellenRails Art von Eltern-ID

category - Eltern

has_many :subcategories 

subcategory - Kind mit category_id Schlüssel

belongs_to :category 

i von Eltern-ID sortiert werden soll wie

subcategory=1 parentId=1 

subcategory=2 parentId=1 


subcategory=122 parentId=1 

subcategory=232 parentId=1 



    subcategory=12 parentId=2 

    subcategory=18 parentId=2 

und so weiter

i

versucht haben
Subcategory.joins(:category).order('categories.id') and 


Subcategory.joins(:category).group(['subcategories.title','categories.id']).order('categories.id') 

aber nicht

funktioniert

, wie ich es sortieren?

I kümmern sich nicht um Unterkategorie brauchen, um gerade zu setzen, um von parentId

+0

Wollen Sie gruppieren oder bestellen? Der Titel sagt Gruppierung aber Ihre gewünschte Ausgabe scheint nur eine Liste von Unterkategorien geordnet/sortiert nach Unterkategorie.Kategorie_ID zu sein, die durch eine einfache 'Unterkategorie.Auswahl (: ID,: Kategorie_ID) .Order (: Kategorie_ID)' – thirdsun

Antwort

0

Dies wird für Sie arbeiten,

category_ids = SubCategory.joins(:category).select('*').order('category_id ASC') 

category_ids.pluck('category.id') //check the category id's 
+0

es getan werden könnte gibt mir 'PG :: GroupingError: ERROR: Spalte" subcategories.id "muss in der GROUP BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden. – user

+0

Ich habe die Antwort aktualisiert, bitte überprüfen. – Sravan

+0

jetzt habe ich 'ORDER BY" Position "ist mehrdeutig." Ich habe Position Spalte in diesen Tabellen – user

0

diesen Versuchen.

Subcategory.select ('category_id'). Gruppe ('category_id'). Ordnung ('id')