Ruby on rails Ruby-HABTM关联循环
我想实现一个嵌套循环,在have中没有重复项,并且属于多个关系 我有一个“活动”模型,每个活动我都有活动数据 我想在表格中显示每个活动及其活动数据。(嵌套)Ruby on rails Ruby-HABTM关联循环,ruby-on-rails,ruby,associations,has-and-belongs-to-many,Ruby On Rails,Ruby,Associations,Has And Belongs To Many,我想实现一个嵌套循环,在have中没有重复项,并且属于多个关系 我有一个“活动”模型,每个活动我都有活动数据 我想在表格中显示每个活动及其活动数据。(嵌套) @magnities=当前用户活动 我的问题是我的活动重复了 我想实现这样的目标: 每个活动都列在表中,其对应的活动_数据直接位于其下方,如果没有活动_数据,则下一个循环从下一个活动开始-这可能吗 最好的注意当您在循环中使用时,可能会得到重复的活动。因此,如果一个活动有4个活动数据,您将看到4次活动名称 您应该正确使用命名约定,如果活动有
@magnities=当前用户活动
我的问题是我的活动重复了
我想实现这样的目标:
每个活动都列在表中,其对应的活动_数据直接位于其下方,如果没有活动_数据,则下一个循环从下一个活动开始-这可能吗
最好的注意当您在
循环中使用
时,可能会得到重复的活动。因此,如果一个活动有4个活动数据,您将看到4次活动名称
您应该正确使用命名约定,如果活动有许多数据活动数据,那么您应该在关联中指定,即有许多:活动数据
此外,控制器中应包含以下代码
@campaigns = current_user.campaigns.include(:campaign_datas)
注意:-我使用了include
以避免n+1
,请阅读
鉴于
<% for campaign in @campaigns %>
<% next if @campaigns.campaign_datas.blank? %>
<tr>
<td><%= item.name %></td>
</tr>
<% for campaign_data in @campaigns.campaign_datas %>
<tr>
<td><%= campaign_data.date %></td>
</tr>
<% end %>
<% end %>
注:-
行用于跳过没有活动数据的活动
<% for campaign in @campaigns %>
<% next if @campaigns.campaign_datas.blank? %>
<tr>
<td><%= item.name %></td>
</tr>
<% for campaign_data in @campaigns.campaign_datas %>
<tr>
<td><%= campaign_data.date %></td>
</tr>
<% end %>
<% end %>