2016-05-30 12 views
1

Ich habe diese in meiner Datenbank. Jeder Artikel befindet sich in einer bestimmten Kategorie und ich möchte alle Artikel in der Kategorie anzeigen, die zusammen mit der Kategorie-ID bestellt wurde. Etwas wie folgt aus:Artikel sortiert nach Kategorie

1 
Expresso 
Americano 
2 
Capuchino 

Hier ist mein Samen Code:

{content: "expresso", price: "29000", category_id: 1}, 
    {content: "Americano", price: "29000", category_id: 1}, 
    {content: "Capuccino", price: "35000", category_id: 2}, 

Dies ist die Controller-Aktion, die die Abfrage ausführt:

def menu 
    @items = Item.order('content ASC') 
end 

Antwort

0

Ihrer Ansicht:

<%- Category.includes(:items).order('categories.id').each do |category| %> 
    <%= category.id %> 
    <%- category.items.each do |item| %> 
     <% = item.content %> 
+0

können Sie 'N + 1' Anfragen von hier entfernen ?? mit 'Category.includes (: items) .order (" categories.id ")' in Controller-Aktion –

+0

@VishalJAIN guten Ruf! –

+0

undefined lokale Variable oder Methode 'Kategorien 'für # <# : 0x000000057b9dc8> app/Aufrufe/Kategorien/menu.html.erb: 11: in Einige Fehler hier, muss ich etwas mehr schreiben in der Controller-Datei? @Andrey Deineko – vicnoob