app/views/leagues/_league_list.html.haml
:ruby
categories = leagues.group_by(&:category)
categories.delete '' # Ignore empty categories
category_id = lambda do |category|
"#{game.name.parameterize}-#{category.parameterize}"
end
.row
.league-categories.tab-content.col-12.col-sm-10.order-2.order-sm-1
- (['All'] + categories.keys).each_with_index do |category, index|
- klass = "tab-pane #{index.zero? ? 'show active' : ''} "
- categorised = index.zero? ? leagues : categories[category]
.league-category{ id: category_id.call(category), class: klass }
%ul.list-group
- categorised.each do |league|
- league_p = present(league)
= link_to league_path(league), class: league_p.list_group_item_class do
.d-flex.align-items-start
%h4.mb-0.list-group-item-heading
= league.name
.spacer
.badge.badge-primary
Teams: #{league.rosters.size}
.col-12.col-sm-2.order-1.order-sm-2.mb-2
%ul.list-group
- select = (['All'] + categories.keys).map { |category| [category, category_id.call(category)] }
= select_tag game.name.parameterize, options_for_select(select, select[0][1]),
class: 'form-control', data: { toggle: 'tab' }