【发布时间】:2016-08-29 00:24:45
【问题描述】:
如何将两个数组合二为一,例如...
Day 1: Notes/form
Day 2: Notes/form
Day 3: Notes/form
Day 4: Notes/form
Day 5: Notes/form
如果用户随后在第 3 天创建笔记,它看起来像...
Day 1: Notes/form
Day 2: Notes/form
Day 3: Notes/notes
Day 4: Notes/form
Day 5: Notes/form
下面的代码怪物试图实现上述目标,但迭代全部结束。例如,如果在第 1 天和第 3 天创建注释,则输出将如下所示...
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
挑战/表演
<% @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 %>
概括地说,用户创建了一个挑战。挑战具有属性days_challenged。用户选择要挑战的天数,即 10、15、30 等。对于每一天,我想显示一个注释/表格。如果用户随后在某一天输入了一条注释,则该注释/表单应在显示页面上替换为该注释(任何一天都不应有多个与之关联的注释)。
【问题讨论】:
-
看来您可能为此使用了错误的数据结构...您是否考虑过使用哈希?
-
我不知道如何集成它。您的意思是像在控制器中添加类似
notes_for_date = @notes.group_by(&:note_date)的东西?我无法让它在视图中工作,尽管@photoionized
标签: ruby-on-rails ruby iteration each polymorphic-associations