Wie kann ich zwei Arrays miteinander zu kombinieren, so dass zum Beispiel ...Wie kann ich zwei Arrays zu einem gemeinsamen Attribut kombinieren?
Day 1: Notes/form
Day 2: Notes/form
Day 3: Notes/form
Day 4: Notes/form
Day 5: Notes/form
Wenn ein Benutzer dann eine Notiz am Tag 3 schafft es wie ...
Day 1: Notes/form
Day 2: Notes/form
Day 3: Notes/notes
Day 4: Notes/form
Day 5: Notes/form
Den Code aussehen würde Monstrosität unten versucht, das Obige zu erreichen, aber die Iteration ist alles aus. Wenn zum Beispiel ein Hinweis an Tag 1 und Tag 3 erstellt wird, dann wird die Ausgabe aussehen ...
Day 1: Notes/notes # Shows both Day 1 and Day 3 note. Only want to show Day 1 note
Day 1: Notes/form
Day 2: Notes/form
Day 2: Notes/form
Day 3: Notes/notes # Shows both Day 1 and Day 3 note. Only want to show Day 3 note
Day 3: Notes/form
Day 4: Notes/form
Day 4: Notes/form
Day 5: Notes/form
Day 5: Notes/form
Herausforderungen/show
<% @challenge.dates_challenged.first(@challenge.days_challenged).each_with_index do |date, i| %>
<% @notes.each do |note| %>
Day <%= i + 1 %>
<% if note.notes_date.strftime("%m/%d/%y") == date.strftime("%m/%d/%y") %>
<%= render 'notes/notes' %>
<% else %>
<%= render 'notes/form', :date => date %>
<% end %>
<% end %>
<% end %>
Zur Erinnerung, ein Benutzer eine Herausforderung schafft. Eine Challenge hat das Attribut days_challenged
. Der Benutzer wählt aus, wie viele Tage in Frage gestellt werden, d. H. 10, 15, 30 usw. Für jeden dieser Tage möchte ich eine Notiz/ein Formular anzeigen. Wenn der Benutzer dann eine Notiz an einem Tag eingibt, sollten die Notizen/das Formular auf der Vorstellungsseite durch diese Notiz ersetzt werden (kein Tag sollte mehr als eine Notiz enthalten).
Es sieht so aus, als ob Sie die falsche Datenstruktur dafür verwenden ... Haben Sie überlegt, einen Hash zu verwenden? – photoionized
Ich kann nicht herausfinden, wie man es integriert. Du meinst wie in den Controller etwas hinzufügen wie 'notes_for_date = @ notes.group_by (&: note_date)'? Ich kann es jedoch nicht in der Ansicht arbeiten @photoionized –