ruby o rails forniscono un metodo per ordinare stringhe in un ordine specificato? Dì che ho le seguenti priorità "Severe, High, Medium, Low".Rails: ordinazione personalizzata di record
Queste priorità non cambieranno di frequente (se non del tutto). Ho un modello Task con una colonna prioritaria:
tasks
- id (integer)
- name (string)
- priority (string)
Mi piacerebbe avere una matrice di tutte le attività ordinate per priorità. Dal momento che l'ordine logico non segue l'ordine alfabetico, non è possibile ordinare semplicemente la colonna di priorità:
Task.all(:order => :priority)
Quello che ho fatto è creare un modello di priorità e definito le associazioni: Task belongs_to priorità. Nella tabella delle priorità, ho quindi assegnato a ciascun nome di priorità un valore e ordinato da quel valore. C'è un modo migliore per farlo? Preferirei non avere una tabella delle priorità e dichiarare una costante PRIORITY (come un hash), o semplicemente specificare la priorità come una stringa nella tabella delle attività.
Grande, grazie! Esattamente quello che stavo cercando. – Homar
Ancora meglio sarebbe usare act_as_list con questo, che fornisce alcuni metodi di ordinamento e così via, davvero pulito. –