Rails: 如何在一个循环中访问两个模型
Rails: How to access two models in a single loop
我正在使用 Audited gem 来跟踪对用户所做的更改。我想准确显示的是所做的更改,即审计与它们在同一时间更新的时间 row.I 试图以这种方式显示它,但它会重复。
<% @users.each do |user| %>
<% user.audits.each do |audit| %>
<% if audit.action != "create" %>
<% user.revisions.each do |revision| %>
<tr class="list-item">
<td>
<%= user.role %>
</td>
<td>
<%= audit.action %>
</td>
<td>
<%= audit.audited_changes %>
</td>
<td>
<%= revision.created_at %>
</td>
<td>
<%= revision.updated_at %>
</td>
</tr>
<% end %>
<% end %>
<% end %>
<% end %>
我想要的是能够显示它们而无需多次显示单个更改。
我正在寻找类似
的表达式
for(i=5,j=3;j<5;i++,j++){
....
}
在rails中,避免重复。谢谢
我是这样解决的,因为审核和修订的数量相同 elements.I 希望对其他人有所帮助。
<% @users.each do |user| %>
<% user.audits.each_with_index do |audit, i| %>
<% if audit.action != "create" %>
<% user.revisions[i] %>
<tr class="list-item">
<td>
<%= user.role %>
</td>
<td>
<%= audit.action %>
</td>
<td>
<%= audit.audited_changes %>
</td>
<td>
<%=user.revisions[i].created_at %>
</td>
<td>
<%= user.revisions[i].updated_at %>
</td>
</tr>
<% end %>
<% end %>
<% end %>
您也可以尝试 zip:
user.audits.zip(user.revisions) do |audit, revision|
我正在使用 Audited gem 来跟踪对用户所做的更改。我想准确显示的是所做的更改,即审计与它们在同一时间更新的时间 row.I 试图以这种方式显示它,但它会重复。
<% @users.each do |user| %>
<% user.audits.each do |audit| %>
<% if audit.action != "create" %>
<% user.revisions.each do |revision| %>
<tr class="list-item">
<td>
<%= user.role %>
</td>
<td>
<%= audit.action %>
</td>
<td>
<%= audit.audited_changes %>
</td>
<td>
<%= revision.created_at %>
</td>
<td>
<%= revision.updated_at %>
</td>
</tr>
<% end %>
<% end %>
<% end %>
<% end %>
我想要的是能够显示它们而无需多次显示单个更改。
我正在寻找类似
的表达式for(i=5,j=3;j<5;i++,j++){
....
}
在rails中,避免重复。谢谢
我是这样解决的,因为审核和修订的数量相同 elements.I 希望对其他人有所帮助。
<% @users.each do |user| %>
<% user.audits.each_with_index do |audit, i| %>
<% if audit.action != "create" %>
<% user.revisions[i] %>
<tr class="list-item">
<td>
<%= user.role %>
</td>
<td>
<%= audit.action %>
</td>
<td>
<%= audit.audited_changes %>
</td>
<td>
<%=user.revisions[i].created_at %>
</td>
<td>
<%= user.revisions[i].updated_at %>
</td>
</tr>
<% end %>
<% end %>
<% end %>
您也可以尝试 zip:
user.audits.zip(user.revisions) do |audit, revision|