Как оптимизировать созданный хеш в ruby ​​на рельсах - PullRequest
0 голосов
/ 14 мая 2019

Могу ли я дать совет по оптимизации моего запроса? Итак, у меня есть запрос к объединенной таблице, а затем воссоздан новый хэш на основе их статуса.

это код моего контроллера.

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) можете ли вы предложить другой способ, как я могу подойти к этому эффективно?

спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...