我正在致力於爲學生和教職員提供一個日曆(ICS訂閱)的學術日期(開始和結束的期限&考試時間,課程日期時間,考試日期和時間等)。我是Ruby和Rails的新手;我們在這裏開始更多的工作,所以我認爲這將是一個很好的學習機會。我無法弄清楚如何構建和建模應用程序的某些部分(如果有的話)。Rails新手 - 如何構建日曆生成應用程序
該應用程序在概念上很簡單:在
用戶日誌和用戶記錄是爲他們創造。生成UUID並存儲在用戶的記錄中;它用於生成他們的ICS URL(http://myservice.foo/feeds/johndoe_ce4970706f320130588b109add5c7cb0.ics)。
當用戶請求他們的ICS文件(通過上述網址),我需要查詢一堆不同的系統,從而爲建立一個日曆來獲取信息:
- 學生信息系統(SIS)包含用戶的時間表(例如johndoe從10:30 - 11:20開始在MWF上使用ENGL 100)。我需要解析這些數據並創建事件。
- 我們的在線學習管理系統Canvas爲其內部的課程提供了日程安排。它可以作爲ICS文件訪問,所以我需要下拉該文件,解析並將其包含在我的應用程序將生成的「主」日曆中。
- 教師可以爲他們的課程指定一個額外的ICS URL,以便他們可以包含以上兩個來源中未提供的任意事件。像Canvas日曆一樣,我需要下載並解析ICS。
我有第一部分工作;我可以通過我們的單點登錄系統(CAS)登錄,並使用生成的UUID創建用戶記錄。不過,我不確定如何處理第二部分。我不需要存儲太多的永久數據;基本上,我只需要保留用戶記錄(其中包含用戶名,生成的UUID以及Canvas LMS的一些訪問令牌)。該Feed將在第一次請求時生成,緩存一段時間(並在需要時按需重新生成)。
我應該在哪裏放置解析和生成代碼?我希望它有點模塊化,因爲我預計在出現問題時會添加其他數據源。我是否應該創建日曆和事件模型,如果我實際上沒有持續這些數據?
把東西放在/ lib和/ app/services中有區別嗎?我已經看到這兩種方式。 – grahamb 2013-03-20 22:10:35
由於「lib」文件夾中的Rails 3類不是自動加載的,並且必須是必需的,但「/ app/services」中的類將自動加載。如果你只需要單個控制器中的服務類,那麼將它放在「lib」文件夾中並僅在該控制器中需要它是比較安全的。 – georgelx 2013-03-21 07:06:15