你好,这是我的第一篇文章,我有一点问题,我怎样才能减少我的代码?我的意思是我有@pedidos,@pedidopending和@pedidocomplete如何减少它?当然每个动作都独立于其他动作,我的意思是我不想在一个中看到所有动作
<% @pedidos.each do |pedido| %>
<tr>
<td><%= pedido.usuario %></td>
<td><%= pedido.pedido %></td>
<td><%= pedido.entrega %></td>
<td><%= pedido.intermedio %></td>
<td><%= pedido.status %></td>
<td><%= link_to 'Show', pedido %></td>
<td><%= link_to 'Edit', edit_pedido_path(pedido) %></td>
<td><%= link_to 'Destroy', pedido, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
<% @pedido.each do |pedido| %>
<tr>
<td><%= pedido.usuario %></td>
<td><%= pedido.pedido %></td>
<td><%= pedido.entrega %></td>
<td><%= pedido.intermedio %></td>
<td><%= pedido.status %></td>
<td><%= link_to 'Show', pedido %></td>
<td><%= link_to 'Edit', edit_pedido_path(pedido) %></td>
<td><%= link_to 'Destroy', pedido, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
答案 0 :(得分:2)
你可以这样做
<%[@pedidos, @pedidopending, @pedidocomplete ].each do |paedidos|%>
<%pedidos.each do |pedido|%>
<td><%= pedido.usuario %></td>
....
<%end%>
<%end%>
或
<%all_pedidos = []%>
<%all_pedidos.push(*@pedidos).push(*@pedidopending).push(*@pedidocomplete).each do |pedido|%>
<td><%= pedido.usuario %></td>
....
<%end%>
答案 1 :(得分:1)
你也可以这样做:
<% [@pedidos, @pedido].each do |pedido| %>
<tr>
<% [:usuario, :pedido, :entrega, :intermedio, :status].each do |attr| %>
<td><%= pedido[attr] %></td>
<% end %>
<td><%= link_to 'Show', pedido %></td>
<td><%= link_to 'Edit', edit_pedido_path(pedido) %></td>
<td><%= link_to 'Destroy', pedido, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>