如何根据设置用户的顺序对结果进行排序?

时间:2015-04-05 05:50:02

标签: ruby-on-rails ruby sorting optimization

在我的数据库中,我有很多列将总结:

  • 代码输入
  • 金额1
  • 金额2
  • 代码阶段
  • Code Sector
  • 代码组

举一个我有的行的例子:

+--------------+----------+----------+-------+--------+-------+
|  code_input  | amount_1 | amount_2 | phase | sector | group |
+--------------+----------+----------+-------+--------+-------+
| 0171090150   | 22       | 14       | 09    | 90     |    10 |
| 0258212527   | 12       | 99       | 08    | 30     |    20 |
| 0359700504   | 30       | 10       | 09    | 20     |    20 |
+--------------+----------+----------+-------+--------+-------+

用户有一个地方可以决定谁是第一,第二,第三和第四。因此,他可以决定code_phase是第一个,第二个cod_sector,第三个code_group,最后是code_input。或者用户可以使用该顺序(首先是cod_sector,第二个是code_phase等)。

在我的数据库中,输入是记录的金额。因此,如果一个扇区包含2个输入,则该扇区的总和是这两个输入的总和。

一个订单的结果示例:

# => Order: Phase, Sector, Group, Input
- Phase 09                52  24
  - Sector 90             22  14
    - Group 10            22  14
      - Input 0171090150  22  14

  - Sector 20             30  10
    - Group 20            30  10
      - Input 0359700504  30  10

- Phase 08                12  99
  - Sector 30             12  99
    - Group 20            12  99
      - Input 0258212527  12  99

我使用Ruby on Rails,我有一个3579行的代码,用于用户可以放置的所有组合。但它是一个不可维护,繁琐的代码,有时我会在可能出现错误的地方感到困惑。

所以,我想知道是否有人可以帮助我知道是否有任何宝石可以帮助我;可能不会做整个订单;但是帮助我极大地优化我的代码或者如果你推荐一种可以做出这个命令的方法或算法。

抱歉我的英文。

0 个答案:

没有答案