Ruby on rails 在RubyonRails中可以使用双层模型吗?
以下是按颜色订购的产品列表: 红色的 产品红色1产品红色2产品红色3 蓝色的 产品蓝1 黄色的 产品黄1 为此,我必须区分控制器中的产品:Ruby on rails 在RubyonRails中可以使用双层模型吗?,ruby-on-rails,loops,Ruby On Rails,Loops,以下是按颜色订购的产品列表: 红色的 产品红色1产品红色2产品红色3 蓝色的 产品蓝1 黄色的 产品黄1 为此,我必须区分控制器中的产品: @productscolor={} @products.each do |product| @productscolor=[product.color][product] end 但在我看来,我该如何管理它呢 我想我会有一个_colorproduct.erb和一个_colorproductdetail.erb 这种双循环视图的名称是什么?这在rail
@productscolor={}
@products.each do |product|
@productscolor=[product.color][product]
end
但在我看来,我该如何管理它呢
我想我会有一个_colorproduct.erb和一个_colorproductdetail.erb
这种双循环视图的名称是什么?这在rails中可行吗?简称为“break”,因为您一直在重新分配@productscolor;)
您需要一个以颜色为键的散列,以及一个以该颜色的产品列表为值的散列
m = Hash.new([])
@products.each do |p|
m[p.color] << p
end
m=Hash.new([])
@产品。每个产品都有| p|
m[p.color]短名称为“断开”,因为您一直在重新分配@productscolor;)
您需要一个以颜色为键的散列,以及一个以该颜色的产品列表为值的散列
m = Hash.new([])
@products.each do |p|
m[p.color] << p
end
m=Hash.new([])
@产品。每个产品都有| p|
m[p.color]实际上,您需要的是按枚举分组
@productscolor = @products.group_by{|x|x.color}
这意味着您的@productscolor实例变量现在具有
{"Yellow" => [Product1, Product2], "Red" => [Product3, Product4], ...}
您可以对数组散列的键进行排序并获得颜色,然后在产品上呈现部分集合。在视图中-
<% @productscolor.keys.sort.each do |color| %>
<%= color %>
<%= render :partial => 'colorproductdetail', :collection => @productscolor[color] %>
<% end %>
'colorproductdetail',:collection=>@productscolor[color]>
随意修改。实际上,您需要的是按枚举分组
@productscolor = @products.group_by{|x|x.color}
这意味着您的@productscolor实例变量现在具有
{"Yellow" => [Product1, Product2], "Red" => [Product3, Product4], ...}
您可以对数组散列的键进行排序并获得颜色,然后在产品上呈现部分集合。在视图中-
<% @productscolor.keys.sort.each do |color| %>
<%= color %>
<%= render :partial => 'colorproductdetail', :collection => @productscolor[color] %>
<% end %>
'colorproductdetail',:collection=>@productscolor[color]>
随意修改