在控制器中对数组的内容进行排序

时间:2014-12-02 14:39:12

标签: sorting ruby-on-rails-4 parameters controller

我在'subject'表格中有'status'和'type'。此状态可以包含字符串:“打开”,“正在进行”和“已关闭”。我想先输出'进行中',然后'打开',然后'关闭'。

在状态排序中,我也希望对类型进行排序,也可以包含四个不同的字符串。

这是否可能(在控制器中),如果可以;如何?

1 个答案:

答案 0 :(得分:1)

我已使用enum解决了这个问题。

我删除了字符串列并改为使用整数

schema.db

t.integer  "status",     default: 0
t.integer  "casetype",   default: 0

然后我将其添加到我的主题模型

subject.rb

enum status: ['In progress', 'Open', 'Closed']
enum casetype: %w(Info NFI RFC RFA)

然后我点了这个:

@subjects = Subject.all.order('status ASC, casetype')

有关枚举的更多信息:http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html