【发布时间】:2011-11-30 16:22:09
【问题描述】:
我需要在不同的列上获取和分组一个模型。我的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 %>
【问题讨论】:
标签: ruby-on-rails-3 postgresql group-by