Могу ли я дать совет по оптимизации моего запроса? Итак, у меня есть запрос к объединенной таблице, а затем воссоздан новый хэш на основе их статуса.
это код моего контроллера.
def index
# create an empty hash for dynamic data
@status_based_data = {}
# get all workorder product
@q = Product.ransack(params[:q])
# loop all workorder product
@q.result.each do |data|
# check status if its a key in stat_based_data
if !@status_based_data[data.status]
# if not created make that a key with a value of an empty array
@status_based_data[data.status] = []
# push whole data as a value
@status_based_data[data.status].push(data)
else
# if status key is created just push the data
@status_based_data[data.status].push(data)
end
end
end
Посмотреть код:
<div>
<% @status_based_data.each do |key, value| %>
<h3><%= key %></h3>
<table class="table table-bordered admin-report">
<thead>
<tr>
<th>Status_id</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<% value.each do |val|%>
<tr>
<td> <%=val.id%> </td>
<td> <%=val.status%> </td>
</tr>
<%end%>
</tbody>
</table>
<% end %>
</div>
мое мнение имеет O(n^2)
можете ли вы предложить другой способ, как я могу подойти к этому эффективно?
спасибо.