Мне нужно выбрать и сгруппировать одну модель по различным столбцам.Моя Stock
модель содержит variation_id, color_id, storage_id, in_stock
.Должен работать с SQLite и Postgre
Я хочу группировать по вариациям, а затем по сумме хранения и отображать сумму in_stock
Вариант 1 (всего: 22)
- Хранение A: 12
- Хранение B: 10
Вариация 2 (всего: 234)
- ХранениеA: 12
- Хранение B: 10
- Хранение C: 212
@stocks = Stock.locked.all
Какой виддолжен выглядеть?До сих пор я был в состоянии группировать по вариациям, но не знаю, как перебрать хранилище и выполнить вычисления.Как извлечь логику, чтобы переместить ее в модель?
<% @stocks.group_by(&:variation).each do |variation, stocks| %>
<h2><%= variation.name %> (<%= variation.color.name %>)</h2>
<% end %>
* РЕДАКТИРОВАТЬ *
Переработан вид.Я получаю вариации и хранилища, но функция суммирования не работает undefined method '+' for #<Stock:0x007ff15a06cf68>
<% @stocks.group_by(&:variation).each do |variation, stocks| %>
<h2><%= variation.name %> </h2>
<% stocks.group_by(&:storage).each do |storage, stock| %>
<li><%= storage.name %>: <%= stock.sum(:in_stock) %></li>
<% end %>
<% end %>