我有一個Rails應用程序,主持人可以管理meetings
,而普通users
可以參加這些會議。爲Rails應用程序存儲全局狀態的最佳方式?
在某些時候,管理員應該能夠「半凍結」應用程序。這基本上是設置在一段時間(我們稱之爲「凍結期」),在此期間,一些事情發生了:
- 爲冰凍期開始之前創建的會議將很快納入計算,他們不能在凍結期間被編輯爲
edit
。 - 版主可以繼續
create
新會議和edit
這些會議,因爲這些新會議不會影響計算。 - 警告出現在網站周圍解釋這些問題。
原則上我可以創建一個FrozenPeriod
模型,但我實際上並不需要一次存儲幾個凍結的時間段,因爲一旦他們結束就被丟棄。
因此,我正在尋找一種「全局狀態」類型的方法。這應該仍然存儲在數據庫中,但可能沒有關聯的模型。
這是否有意義?例如,最佳做法是否包含一種將「單一模型」存儲在數據庫中的方法?
'Rails.cache'是存儲這種臨時狀態的好地方。只要確保你使用的不是文件存儲。 –
謝謝@SergioTulentsev!但是,如果這個凍結期可能持續兩週,這是否成立? – gdiazc
取決於您的緩存後端,它是否會執行意外的密鑰過期等。:)爲了安全起見,我會將其存儲在數據庫中。 '如果FrozenPeriod.count> 0; show_warning'。然後,完成後,只需刪除所有凍結的時間段,以便表格再次爲空。 –