我在'subject'表格中有'status'和'type'。此状态可以包含字符串:“打开”,“正在进行”和“已关闭”。我想先输出'进行中',然后'打开',然后'关闭'。
在状态排序中,我也希望对类型进行排序,也可以包含四个不同的字符串。
这是否可能(在控制器中),如果可以;如何?
答案 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