Ruby on rails 按不同级别对Rails 4记录进行分类
我有一个Ruby on rails 按不同级别对Rails 4记录进行分类,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个传入包的集合,其中既有特定的:产品,也有特定的供应商 要按供应商或产品对其进行分类,我发现这种方法非常高效: 控制器 def by_supplier @incomings = ::Incoming::Product.all @suppliers = @incomings.group_by(&:supplier) end def by_product @incomings = ::Incoming::Product.all @products =
传入包的集合
,其中既有特定的:产品
,也有特定的供应商
要按供应商或产品对其进行分类,我发现这种方法非常高效:
控制器
def by_supplier
@incomings = ::Incoming::Product.all
@suppliers = @incomings.group_by(&:supplier)
end
def by_product
@incomings = ::Incoming::Product.all
@products = @incomings.group_by(&:product)
end
<% @suppliers.each_pair do |supplier, incomings| %>
<h4 class="box-title">Supplier: <%= supplier.name %></h4>
</div>
<%= render "table", data: incomings %>
</div>
<% end %>
供应商视图
def by_supplier
@incomings = ::Incoming::Product.all
@suppliers = @incomings.group_by(&:supplier)
end
def by_product
@incomings = ::Incoming::Product.all
@products = @incomings.group_by(&:product)
end
<% @suppliers.each_pair do |supplier, incomings| %>
<h4 class="box-title">Supplier: <%= supplier.name %></h4>
</div>
<%= render "table", data: incomings %>
</div>
<% end %>
供应商:
按产品列出的视图
<% @products.each_pair do |product, incomings| %>
<h4 class="box-title">Product: <%= product.name %></h4>
</div>
<%= render "table", data: incomings %>
</div>
<% end %>
产品:
这为我提供了如下数据,例如供应商:
供应商:供应商A
- 传入A
- 传入D
- 传入F
- 传入B
- 传入C
- 传入E
- 传入H
- 传入J
- 产品:产品1
- 传入A
- 传入D
- 产品:产品2
- 传入F
- 产品:产品1
- 传入B
- 产品:产品3
- 传入C
- 传入E
- 产品:产品1
- 传入H
- 产品:产品4
- 传入J
如何以DB高效的方式实现这一点?GROUPBY只是一种ruby方法,您可以再次这样做
<% @suppliers.each_pair do |supplier, incomings| %>
<h4 class="box-title">Supplier: <%= supplier.name %></h4>
<div>
<% incomings.group_by(&:product).each_pair do |product, product_incomings| %>
<h4 class="box-title">Product: <%= product.name %></h4>
<div>
<%= render "table", data: product_incomings %>
</div>
<% end %>
</div>
<% end %>
供应商:
产品:
然后也这样做,但按供应商对产品进行分组。谢谢!比我想象的要简单。我应该自己想想:)