Я использую configatron gem для нового приложения на Rails, для которого используется ActiveRecord. Некоторые из моих настроек configatron установлены в файле, а некоторые извлекаются из БД, так как они будут время от времени меняться, вот несколько строк из моего configatron.rb
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
сделать из кода). Однако это означает, что будут сброшены и другие настройки configatron, которые я не буду сбрасывать (например, моя временная метка времени начала работы).
Так что лучше переместить мой файл configatron.rb и загрузить его так, чтобы он позволял
загрузка один раз при запуске, а затем изменение некоторых настроек без перезагрузки приложения?
Спасибо.