Dans une application Rails 3, j'utilise un group_by quelque peu complexe et je suis curieux de savoir si je peux le cacher ailleurs, tout comme on peut cacher des conditions ActiveRecord dans une lunette. Je me rends compte group_by est une opération sur un Enumerable, donc champs d'application ne s'appliquent pas ici, mais ma question est s'il y a un moyen de créer un raccourci pour cela d'une manière comparable:Comment pourrais-je cacher une clause group_by complexe dans Ruby?
@launches_and_finales = Show.launches_and_finales.sort_by { |s|
(s.run_starts_on &&
((Date.today - 3.days)..(Date.today + 3.days)) === s.run_starts_on) ?
s.run_starts_on : s.run_ends_on }
Side note: Je me rends compte 3.days.ago..3.days.from_now
serait plus succint, mais il y a un bug in Ruby 1.9.2 qui déclenche une boucle sans fin quand j'utilise ça.
Je ne l'avais pas pensé à faire une logique plus complexe à la couche de modèle. Je dois avoir seulement considéré les limites avec leurs limitations ici, mais bien sûr je peux juste ajouter une toute nouvelle méthode. Je ne pense pas que 2 fera l'affaire cependant, puisque c'est le groupe le plus complexe_par ce que je suis après, pas seulement le filtre. –