2017-08-29 77 views
1

我使用Audited Gem來跟蹤用戶所做的更改。我想要準確地顯示的是所做的更改,即審覈與更新時間在同一行中。我試圖以這種方式顯示,但它會重複。Rails:如何在單個循環中訪問兩個模型

<% @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++){ 
    .... 
} 
在軌

,避免重複。謝謝

回答

0

我這樣解決了它,因爲審計和修改都有相同數量的元素。我希望它對其他人有幫助。

<% @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 %> 
0

您也可以嘗試zip

user.audits.zip(user.revisions) do |audit, revision| 
相關問題