Disons que j'ai deux modèles une entreprise et un TimeSlot, et la relation est que business has_many :timeslots
. chaque intervalle de temps a une colonne de jour qui stocke les DAYNAME comme 'Monday', 'Tuesday'
etc.Rails ActiveRecord comment faire tri personnalisé sur une relation has_many
Quand je
bussiness.time_slots
Je reçois des intervalles de temps qui ne sont pas triés. Je veux que les intervalles de temps soient triés par jour (pas par ordre alphabétique). fois les slots avec 'Monday' viennent en premier que 'Tuesday' et ainsi de suite.
Je pense que SQL ne peut me aider avec cela parce que le tri est coutume, je dois trier après avoir lu, mais je suis préoccupé par l'endroit où placer le code qui
je peux faire quelque chose comme
dans mon contrôleur
b = current_business
TimeSlot.find_sorted_with_busines(b)
dans mon modèle Timeslot
def find_sorted_with_business(b)
b.time_slots
# sort timeslots using custom sorting here and return
end
mais je ne aime pas l'idée de passer un objet métier ou l'identifiant du modèle Timeslot, je devrais être capable de faire quelque chose comme
b = current_business
b.sorted_timeslots
comment puis-je faire cela?
idées sur la façon de faire le tri personnalisé basé sur dayNames sont également les bienvenus :)
Merci
Avez-vous envisagé le stockage des entiers au lieu des noms de jour. Cela faciliterait le tri. Et vous pouvez remplacer le getter et le setter pour passer des noms de jour à des nombres entiers ou inversement. Juste une pensée. – Robin
jamais pensé à ça .. ressemble à une bonne idée et je pense que cela aiderait à éliminer beaucoup de désordre. Je vais l'essayer – Abid
@Robin si vous déplacez ceci à une réponse j'accepterai – Abid