1

我正在使用 Audited gem 来跟踪对用户所做的更改。我想准确显示的是所做的更改,即审计与它们在同一行中更新的时间。我试图以这种方式显示它,但它会重复。

<% @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中,以避免重复。谢谢

4

2 回答 2

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 %>
于 2017-08-29T14:27:51.980 回答
0

您也可以尝试zip

user.audits.zip(user.revisions) do |audit, revision|
于 2017-08-29T20:26:30.160 回答