2012-05-30 26 views
6

我正在研究使用Ice Cube https://github.com/seejohnrun/ice_cube進行重複性事件。 我的問題是,如果我然後需要得到在給定時間段內(例如,在一天或一週內)的任何事件,是否有任何更好的方式比循環遍歷它們都是這樣的:在給定時間段內有效檢索ice_cube計劃

items = Records.find(:all) 
items.each do |item| 
    schedule = item.schedule 
    if schedule.occurs_on?(Date.new) 
     #if today is a recurrence, add to array 
    end 
end 

這看起來可怕的效率很低,但我不知道該如何去做。

+0

你最終做了什麼?即時通訊卡在同一個地方嗎?謝謝 – loloso

回答

4

這是一種方法 - 但人們更經常做的事情是最終將其日程表非規範化爲便於查詢的格式。

您可能有一個名爲類似ScheduleOccurrences的集合 - 您每週構建一個/然後查詢它。

不幸的是,它必須以這種方式工作,但堅持iCal管理日程表的方式,導致IceCube需要以某種方式格式化其數據(特別是可以與iCal RFC的要求相匹配的方式)。

我最近一直在想一個圖書館看起來會如何擺脫這些限制,以獲得更大的靈活性 - 但它肯定還是有點關閉。

希望這會有幫助

+0

謝謝,約翰。但是,當用戶在下週的日曆中瀏覽時會發生什麼? – 99miles

+0

也許你可以根據需要生成ScheduleOccurrences?所以如果有人要求下週的時間表,服務器可以保存行。我目前正在嘗試弄清楚如何在我的rails ap中執行重複事件... – mscriven

相關問題