Je crée une application de planification dans Rails et je suis coincé en essayant d'organiser les salles par date. Quand je dis une pièce, je veux dire essentiellement un bloc dans l'annexe. Un événement typique peut avoir un déjeuner (une pièce), puis une section de mise en réseau (une autre pièce). Voici comment je reçois les chambres:Organisation par des rails datetime dans la vue
@rooms = Room.where(event_id: @current_event.id).order(:start_time)
donc qui retourne les pièces qui appartiennent à un événement, dans l'ordre du temps de démarrage. À mon avis, je traverse et affiche les salles pour l'événement, mais je veux les regrouper dans la vue par la date au cas où il y a un événement qui est sur plusieurs jours.
Egalement :start_time
est un type datetime dans Ruby. En langage humain, ce que je ferais est de regarder la partie date et si la date de la pièce n'est pas la même que celle du groupe actuel, j'imprimerais la nouvelle date et continuerais à regrouper les pièces qui tombent ce jour-là. Voici un exemple trivial au cas où je ne suis pas clair:
Event: Staff Retreat
July 14th, 2015
-----------------------
12:30 PM
Team building Lunch Begins
------------------------
6:30 PM
Team building Dinner Begins
------------------------
July 15th, 2015
------------------------
9:30 AM
Team building Breakfast Begins
Donc, avoir le regroupement des chambres dans la variable @rooms
qui est un datetime, quelle serait la meilleure façon d'afficher une table comme celle-ci? Je pense que dans ma boucle que je devrais vérifier si la date était la même que la salle précédente, et sinon imprimer la date
- @rooms.each do |room|
room.start_time.strftime("%B %d, %Y")
room.start_time.strftime("%I:%M%p")
room.name
Je ne parviens pas à la logistique, car avec le concept Model-View-Controller , Je pense que trier dans la vue peut avoir la vue de faire quelque chose qu'il ne devrait pas avoir à faire. Je me bats aussi avec la façon de le faire dans la vue. Je pense que le fait de définir une variable dans le contrôleur qui contiendrait la date temporaire en boucle fonctionnerait, mais il semblerait que cela commence à devenir plutôt désordonné. Quel est le meilleur moyen de regrouper les différentes dates de la variable @rooms
?
Merci! Cela les a regroupés comme je le voulais, mais avec un problème, les dates sont hors service. Une chambre est sur le 7-13 qui est le premier, puis deux chambres sont sur le 15 et ceux viennent deuxième, puis theres une chambre sur le 14 qui vient en dernier, et l'ordre n'est pas l'ordre qu'ils ont été créés. Je vais poster des entrées de modèles de chambres en espérant que cela aidera – ajk4550
nom: "Room Test", created_at: "2015-07-13 20:03:08", updated_at: "2015-07-13 20:03:08", event_id: 1, start_time: "2015-07-13 17:30:00">, #, # , # ]> –
ajk4550
J'ai mis à jour ma réponse. pouvez-vous essayer maintenant s'il vous plaît. J'espère que cela fonctionnera – Athar