我正在使用configatron gem作爲由ActiveRecord備份的新Rails應用程序。我的一些configatron設置在文件中設置,有些是從DB拉,因爲他們會改變不時地,這裏有幾行從我configatron.rb在Rails應用程序中存儲Configtron配置的權利/最佳位置是什麼?
configatron.app.uptime.start = Time.now
configatron.email.signature = Setting.where(:keyname => "email_signature").first.value.to_s unless Setting.where(:keyname => "email_signature").first.nil?
因爲這個應用程序發送多封電子郵件來自多個郵件程序 - 這是將此全局配置保存在一個地方的好方法,此外還可以減少數據庫查找的簽名。如果由於某種原因,網站管理員決定更改它 - 他們可以通過網絡管理界面進行更新我的設置表(綁定到設置模式)。
這是所有快活的&不錯,但是什麼是存儲configatron.rb的最佳地方?現在它坐在我的初始化文件夾中。這意味着它將在應用程序啓動時加載一次 - 這很好,但如果其中一個設置發生變化 - 網站管理員決定調整電子郵件簽名以提及新的促銷網站 - 爲了使更改生效 - 我需要重新啓動應用程序(運行乘客 - 因此從代碼中執行touch tmp/restart.txt
很簡單)。但是,這意味着我不會重置的其他configtron設置(例如我的正常運行時間開始時間戳)也將被重置。
那麼什麼是更好的地方來移動我的configtron.rb和負載,以便它允許在啓動時加載一次 ,然後更改一些配置而無需和應用程序重新啓動?
謝謝。
,我只能存儲應用程序設置那裏,需要的環境是加載後纔會被載入。實際上基於哪個環境應用程序(prod vs test/dev),我加載了不同的設置。 – konung