2016-06-04 12 views
2

Ich mache zur Zeit eine dictionnay, Glossar hier http://beta.emangaka.com/definitionsalphabetisch sortieren und gruppieren Sie nach Anfangsbuchstaben

ich alphabetisch die Definition sortieren.

definitions_controller.rb:

def index 
    @definitions = Definition.all.order('title ASC') 
    @titre = "Définitions" 
    end 

index.html.erb

<% @definitions.each do |definition| %> 
... 

Die Liste ist zu lang und ich bin auf der Suche nach Gruppe mit Schreiben auch immer auf dem ersten Buchstaben " Titel".

Wie vorgehen? Merci. Vielen Dank.

Antwort

3

können Sie group_by wie verwenden unten

@definitions = Definition.all.order('title ASC').group_by{|d| d.title[0]} 

Und in der Ansicht

<% @definitions.each do |letter, definition| %> 
    <h2><%= letter %></h2> 
    <% definition.each do |defn| %> 
    <%= defn %> 
    <% end %> 
<% end %> 
+0

Ok danke dafür. Ich habe vergessen zu erwähnen, dass, da die Liste sehr lang sein wird, es sehr lang sein wird, zu entrollen, scrollen. Ich würde einen anklickbaren Index erstellen, indem ich jeweils nur eine Buchstabengruppe und "Alle" (alle anzeigen) anzeigen würde. –

Verwandte Themen