爲了簡單起見,我避免使用屬性的枚舉,而是存儲字符串值。按預定列表排序記錄的最佳方法
我有所有可能的值在陣列中的一個預定的順序列表:MyTypeEnum.names
而且我有記錄在my_recs = MyModel.order(:my_type)
什麼是訂單記錄的最好辦法一個ActiveRecord ::關係列表在my_recs中通過my_type屬性值按MyTypeEnum.names中值的數組指定的順序排序?
我可以試試這個:
my_recs = MyModel.order(:my_type)
ordered_recs = []
MyTypeEnum.names.each do |my_type_ordered|
ordered_recs << my_recs.where(:my_type => my_type_ordered)
end
但我會通過構建一個數組,而不是使用的ActiveRecord ::關係查殺性能?有更清潔的方法嗎? (注意:我可能希望在訂購時具有靈活性,所以我不想假定訂單按照MyTypeEnum.names的順序如上所述進行硬編碼)