2016-05-13 115 views
1

我有一個Event帶屬性的模型start_time,end_timetitle。我想以日曆格式顯示事件,其中可以從開始日期到結束日期查看事件。我正在使用simple_calendar gem來顯示日曆。 gem的github頁面是here。以下是我正在使用的代碼,它目前在其開始日期顯示事件。我可以使用simple_calendar以我想要的方式呈現視圖,還是有人可以幫助我如何循環日曆中的事件,以便我可以從頭開始編寫邏輯並顯示從開始日期到結束日期的事件?從開始日期到結束日期的日曆中顯示事件

日曆頁:

<%= month_calendar events: @events do |date, events| %> 
    <%= date %> 
    <% events.each do |event| %> 
    <div> 
     <%= event.title %> 
    </div> 
    <% end %> 
<% end %> 

回答

0

我創建了一個哈希連鍵日期和值的Event的陣列。對於事件存在的每個日期密鑰,多次存在的事件存在於散列中多次。現在我只是檢查日期是否有任何事件在渲染時打印,如果是真的。

控制器

def calendar 
    @date_events = Hash.new { |h, k| h[k] = [] } 
    Events.all.each do |event| 
    (event.starts_at.to_date..event.ends_at.to_date).each do |dt| 
     @date_events[dt].push(event) 
    end 
    end 
end 

calendar.html.erb

<%= month_calendar do |date| %> 
    <%= date %> 
    <% if @date_events[date] %> 
    <% @date_events[date].each do |event| %> 
     <div> 
     <%= event.title %> 
     </div> 
    <% end %> 
    <% end %> 
<% end %> 
相關問題