2016-06-04 6 views
2

Я сейчас делаю dictionnay, глоссарий здесь http://beta.emangaka.com/definitionsСортировать по алфавиту и группа по первой букве

сортировать определение в алфавитном порядке.

definitions_controller.rb:

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

index.html.erb

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

Список слишком долго, и я ищу группу по буквам тоже всегда на основе первой буквы " заглавие".

Как это сделать? Merci. Спасибо.

ответ

3

Вы можете использовать group_by, как показано ниже

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

И по мнению

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

Хорошо спасибо вам за это. Я забыл упомянуть, что, поскольку список будет очень длинным, будет очень долго разворачиваться, прокручивать. Я бы создал кликабельный индекс, показывая только одну группу букв за раз и «Все» (все кнопки «Показать»). –

Смежные вопросы