2011-06-07 53 views
2

我瀏覽了相關的問題,但由於大多數問題詢問在哪裏存儲常量而不是簡單的全局變量,所以我找不到需要的內容。在Rails 3中存儲全局變量(不是常量!)的適當位置

我想讓我的CMS隨機選擇一個配色方案,只需點擊一個按鈕。儘管如此,在用戶自動生成colorscheme之前,我希望能夠從多個變量中加載默認的一個。什麼是這些事情的好地方?

到目前爲止,我一直在數據庫中存儲設置,但我不知道是否有一個簡單的方法。出於某種原因將它們放置在environment.rb或initializers.rb中似乎沒有辦法。

我想指出,我想這些變量是可編輯的;常量不好。

回答

3

您是否希望用戶只更改其帳戶的配色方案?如果是這樣,該設置應該存儲在與該用戶相關的數據庫中。

如果您將值存儲在像config/initializers/color.rb中的$ color這樣的Ruby常量中,它將被設置並重新設置給所有正在運行Rails應用程序的實例的用戶。假設您有三個生產Rails進程在Thin Server等Web服務器上運行,33%(取決於您的負載平衡器)用戶將看到相同的顏色。

初始化器中的$ color應該可以在本地工作,但是在創建變量後必須重新啓動服務器。

+0

正是我所需要的,謝謝! – 2011-06-07 02:51:06