除了每天显示所有笔记外,我们如何才能每天只显示一个笔记,note.note_date == date
?
Day 1: Notes/notes # Shows both Day 1 and Day 3 note. Only want to show Day 1 note
Day 2: Notes/form
Day 3: Notes/notes # Shows both Day 1 and Day 3 note. Only want to show Day 3 note
Day 4: Notes/form
Day 5: Notes/form
挑战/显示
<% @challenge.dates_challenged.first(@challenge.days_challenged).each_with_index do |date, i| %>
Day <%= i + 1 %>
<% if @notes.any? { |note| note.notes_date.strftime("%m/%d/%y") == date.strftime("%m/%d/%y") } %>
<%= render 'notes/notes' %>
<% else %>
<%= render 'notes/form', :date => date %>
<% end %>
<% end %>
备注/注意事项
<% @notes.each do |note| %>
<%= note.notes_text %>
<% end %>
备注/形式
<%= form_for [@notable, @note] do |f| %>
<%= f.text_area :notes_text, placeholder: 'Enter Recap' %>
<%= f.date_select :notes_date, selected: date, :order => [:month, :day, :year] %>
<% end %>
challenges_controller
def show
@notable = @challenge
@notes = @notable.notes
@note = Note.new
end
回顾一下,用户创建了一个挑战。挑战具有属性days_challenged
。用户选择将被挑战的天数,即10,15,30等。对于每一天,将呈现notes/form
。如果note.notes_date
等于相应的一天,那么我们怎样才能显示一个音符代替notes/form
?
答案 0 :(得分:2)
<% if @notes.any?
@today_notes = @notes.select{ |note| note.notes_date.strftime("%m/%d/%y") == date.strftime("%m/%d/%y") } %>
<%= render 'notes/notes' %>
<% else %>
...
<% end %>
然后在notes / notes partial中使用@today_notes
。
答案 1 :(得分:0)
将此<%= render 'notes/notes' %>
部分更改为低于1,然后在note.html.erb文件下方。
挑战显示:
<%= render partial: 'notes/notes', locals:{note: note} %>
将note.html.erb重命名为下划线_notes.html.erb
备注/ _notes.html.erb:强>
<%= note.notes_text %>