我有一些要在车辆展示中打印的车辆功能。问题在于功能具有类别(或类型),我也想打印它们。但首先,让我解释一下我的项目:
我有3种型号:
因此,当我创建/编辑车辆时,得到了它(请参见下图)以选择该车辆的功能。当我提交车辆时,这些功能会转到保存feature_ids的数组。
#vehicle form page
<% FeatureType.all.order("description").each do |ft| %>
<span><%= ft.description %></span>
<%= f.collection_check_boxes :feature_ids, ft.features, :id, :description do |b|%>
<%= b.label{ b.check_box + b.text } %>
<% end %>
<% end %>
在我的车辆展示页面上,我想显示要素类型,然后显示所选的要素。如果一个feature_type没有选择任何特征,则feature_Type将不会显示。但是我现在真的不怎么做。我只能打印所有选定的精选功能:
#vehicle show page
<% @vehicle.features.each do |feature| %>
<span><i class="fa fa-check"></i><%= feature.description %></span>
<% end %>
输出:
所需的输出:
我该如何实现?
很抱歉,帖子过长。谢谢!
P.S:如果您能为此帖子提供标题,我将不胜感激!我真的不知道如何给这个xD命名
答案 0 :(得分:3)
您要尝试做的关键是group_by
:
<% @vehicle.features.group_by(&:feature_type).each do |feature_type, features| %>
<%= feature_type %>
<% features.each do |feature| %>
...
<% end %>
<% end %>