Я делаю свои первые шаги в RoR, пытаюсь отобразить содержимое таблицы «побочных действий» и сортирую их в зависимости от побочной категории.Так, например, я хочу показать все инциденты, относящиеся к категории «баня» (мыло, полотенца, шампунь и т. Д.), На мой взгляд, а затем показать все инциденты, относящиеся к категории «электро» (A / C,Телевизор, пульт дистанционного управления и т. Д.), В другом складном виде.
До сих пор мне удавалось на самом деле сделать это с помощью этого кода, который, на мой взгляд, очень грязный и неэффективный:
<ul class="collapsible">
<li>
<div class="collapsible-header"><i class="material-icons">filter_drama</i>Baño y Aseo</div>
<div class="collapsible-body">
<table class="striped centered">
<thead>
</thead>
<tbody>
**<% Incidental.all.each do |incidental| %>
<% case incidental.category %>
<% when "bath" %>
<tr>
<td><%= incidental.item %></td>
<td><a href="#" class="btn btn-submit">Pedir</a></td>
</tr>
<% end %>
<% end %>**
</tbody>
</table>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">place</i>Electrodomésticos</div>
<div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span>
<<table class="striped centered">
<thead>
</thead>
<tbody>
<% Incidental.all.each do |incidental| %>
<% case incidental.category %>
<% when "electro" %>
<tr>
<td><%= incidental.item %></td>
<td><a href="#" class="btn btn-submit">Pedir</a></td>
</tr>
<% end %>
<% end %>
</tbody>
</table>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
<div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
</li>
</ul>
Это работает, но для этого мне нужно запустить несколько <% Incidental.all.each do |idental |%> циклически повторяется по всей таблице, отображая только соответствующие записи с блоком case.Это выглядит как очень неэффективный и «не-RoR-ишный» подход ко мне.
Я хотел бы перейти к «случайному списку» только один раз и отобразить каждый элементна соответствующем разборном.Как мне добиться этого?Заранее спасибо!