2014-03-13 36 views
0

目前,我正在開發使用rails 3 *和ruby 1.9.3開發的應用程序。我已經在初始化程序部分爲每個環境配置了一些電子郵件地址作爲YML文件。用rails應用程序配置電子郵件地址的更好方法

但是,需求不斷變化(但每個月會發生一次或兩次),需要從配置中添加/刪除電子郵件地址。因此,我需要在每次更改時重新啓動服務器。因爲我在初始化程序中配置了這些地址。

有沒有更好的方法來處理這種情況?

回答

1

如果您想在不重新部署/重新啓動服務器的情況下更改電子郵件,則始終可以創建Email模型並將其保存到數據庫中。例如,通過添加current字段/列(布爾值)和範圍scope :current, -> { where(current: true) },您可以通過Email.current.first.address訪問電子郵件。您可能需要確保在任何給定時間只有一個「當前」電子郵件對象存在。

編輯

  1. 創建模型並不意味着你必須爲它創建UI。如果必須使用控制檯更改電子郵件。
  2. 配置和模型在啓動時加載,如果您不想在生產中進行任何重新加載,這很慢並且不推薦,您必須使用DB來實現持久性。
  3. 如果你真的想要下載「重新加載」路線,請在config/environments/production.rb中設置config.cache_classes = true,並在config目錄之外(在某些型號或控制器中)指定電子郵件地址,如EMAIL = '[email protected]'。您必須更改每臺生產計算機上的生產代碼,而無需重新啓動服務器。聽起來很哈克。查看零宕機時間,部署更加優雅的解決方案。重新部署應該便宜且無痛。
+0

感謝您的回覆。但是,這不是我想要的。我不喜歡爲此創建任何模型和UI部分。無論如何,我會更新我的問題。 –

+0

用一些想法更新了我的回覆 –

相關問題