首页 > 解决方案 > 如何在 ruby​​ on rails 中优化创建的哈希

问题描述

我可以对如何优化我的查询提出一些建议吗?所以我对连接表进行了查询,然后根据它们的状态重新创建了一个新的哈希。

这是我的控制器代码。

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)你能建议我如何有效地解决这个问题的另一种方法吗?

谢谢你。

标签: ruby-on-railsrubyoptimization

解决方案


推荐阅读