我有三个模型。一个是员工,一个是项目,一个是同时属于员工和项目的事务。这是一个简单的应用程序,允许员工签入和签出项目 - “交易”有一个用于签入/签出的布尔列。
我要做的是在员工/显示视图中显示员工已签出的当前项目列表。这是我草拟的一些粗略代码,但我不确定它是否会起作用,而且我被告知无论如何不要在我的视图中使用大量嵌套条件。
<% if @employee.transactions.exists? %>
<h3>Currently Checked-OUT Items</h3>
<table>
<tr>
<th>Item Asset Tag</th>
<th>Item Description</th>
</tr>
<% @employee.transactions.each do |transaction| %>
<% if item.transaction.last? && transaction.status == false %>
<tr>
<td><% transaction.assettag %></td>
<td><% transaction.description %></td>
</tr>
<% else %>
NO CHECKED OUT ITEMS
<% end %>
</table>
<% end %>
<% end %>
基本上,我正在尝试:
- 检查所有员工交易
- 比较事务中涉及的项目并查看它是否是项目的.last 事务记录
- 如果是,如果它是 false,那么它是当前结帐。
对于 Transaction 模型中的范围或辅助方法,这是一个更好的工作吗?我也从未使用过,我对rails真的很陌生。