我想通过program_project_id或category_id
按一系列对象进行分组我有一个控制分组的复选框。如果2个项目具有相同的program_project_id,则必须对其进行分组;如果2个项目具有相同的category_id,则必须对其进行分组。
这是我的第一个方法,只有program_project_id:
<% ppmp.items.where(combine_in_app: true).group_by(&:program_project_id).each do |s, pp| %>
<% pp.each_with_index do |item, index| %>
<tr class="greeny">
<% case index when 0 %>
<td><%= item.category.code %></td>
<td class="no-space"><%= item.category.description%></td>
<td><%= item.program_project.name %></td>
<td><%= item.description %></td>
<td><%= ppmp.pmo_end_user %></td>
<td><%= item.type_of_procurement.name %></td>
<td><%= item.mode_of_procurement.name %></td>
<td><%= item.contract_type.name %></td>
<td><%= item.app_ads_post.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_sl_eligibility_check.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_pre_bid_conf.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_eligibility_check.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_sub_open_bids.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_bid_eval.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_negotiations.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_post_qual.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_notice_award.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_contract_signing.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_notice_to_proceed.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_completion.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_acceptance_turnover.try(:strftime,'%d-%b-%y') %></td>
<td class="no-space"><%= item.app_source_of_fund %></td>
<td><div align="right"><%= number_with_precision(ppmp.combined_total_1,:precision=>2,:delimiter=>',') %></div></td>
<td class="width-auto no-space"><%= item.app_remarks %></td>
<td><%=link_to "#{ppmp.code}",ppmp %></td>
<% else %>
<td></td>
<td></td>
<td><%= item.program_project.name %></td>
<td><%= item.description %></td>
<td><%= ppmp.pmo_end_user %></td>
<td><%= item.type_of_procurement.name %></td>
<td><%= item.mode_of_procurement.name %></td>
<td><%= item.contract_type.name %></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="width-auto no-space"><%= item.app_remarks %></td>
<td><%=link_to "#{ppmp.code}",ppmp %></td>
<% end %>
</tr>
<% end %>
<% end %>
我尝试了另一种情况,但我做不到..
<% ppmp.items.where(combine_in_app: true).group_by{|x| [x.program_project_id, x.category_id]}.each do |s, pp| %>
<% pp.each_with_index do |item, index| %>
<tr class="greeny">
<% case index when 0 %>
<td><%= item.category.code %></td>
<td class="no-space"><%= item.category.description%></td>
<td><%= item.program_project.name %></td>
<td><%= item.description %></td>
<td><%= ppmp.pmo_end_user %></td>
<td><%= item.type_of_procurement.name %></td>
<td><%= item.mode_of_procurement.name %></td>
<td><%= item.contract_type.name %></td>
<td><%= item.app_ads_post.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_sl_eligibility_check.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_pre_bid_conf.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_eligibility_check.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_sub_open_bids.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_bid_eval.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_negotiations.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_post_qual.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_notice_award.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_contract_signing.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_notice_to_proceed.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_completion.try(:strftime,'%d-%b-%y') %></td>
<td><%= item.app_acceptance_turnover.try(:strftime,'%d-%b-%y') %></td>
<td class="no-space"><%= item.app_source_of_fund %></td>
<td><div align="right"><%= number_with_precision(ppmp.combined_total_1,:precision=>2,:delimiter=>',') %></div></td>
<td class="width-auto no-space"><%= item.app_remarks %></td>
<td><%=link_to "#{ppmp.code}",ppmp %></td>
<% else %>
<td></td>
<td></td>
<td><%= item.program_project.name %></td>
<td><%= item.description %></td>
<td><%= ppmp.pmo_end_user %></td>
<td><%= item.type_of_procurement.name %></td>
<td><%= item.mode_of_procurement.name %></td>
<td><%= item.contract_type.name %></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="width-auto no-space"><%= item.app_remarks %></td>
<td><%=link_to "#{ppmp.code}",ppmp %></td>
<% end %>
</tr>
<% end %>
<% end %>
我尝过的其他人:
<% ppmp.items.where(combine_in_app: true).group_by{|x| [x.program_project_id || x.category_id]}.each do |s, pp| %>
<% ppmp.items.where(combine_in_app: true).group_by{|x| [x.program_project_id && x.category_id]}.each do |s, pp| %>
很抱歉,这是我第一次按照此列或其他列进行分组