2017-10-21 230 views
0

Je sais qu'il existe des exemples sur Stackoverflow résolvant un problème similaire mais je ne pouvais pas faire fonctionner les approches. Je construis un tableau pour une sélection groupée. L'approche ci-dessous fonctionne partiellement jusqu'à ce qu'elle rencontre un nom en minuscules. Je sais que &: downcase peut être utilisé dans ces situations, mais je ne peux pas comprendre comment l'appliquer dans le cas ci-dessous. Toute aide est appréciée.Tri d'un tableau ruby ​​en ignorant le cas

<% myprojects = Project.having_production_stages.sort_by(&:formal_name) %> 
+0

Vous devriez certainement savoir ce que '&:' est en train de faire. C'est un raccourci pour un cas spécifique d'un concept plus général qui vous sera très utile pour résoudre des problèmes similaires dans le futur. – mikej

Répondre

5

Disons que vous utilisez mysql et Project.having_production_stages retourne un ActiveRecord::Relation, cela devrait être la meilleure façon d'aller

Project.having_production_stages.order('LOWER(formal_name)') 

Si ce n'est pas une relation, mais simplement une collection essayer

Project.having_production_stages.sort_by { |project| project.formal_name.downcase } 
+0

L'exemple de collection a fonctionné. Je vous remercie! – user1576738

+0

Mon plaisir. ;) – Ursus