我正在将configatron gem用于由 ActiveRecord 备份的新 Rails 应用程序。我的一些配置器设置是在一个文件中设置的,一些是从数据库中提取的,因为它们会不时更改,这里有几行来自我的 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?
由于此应用程序从多个邮件程序发送多封电子邮件 - 这是将此全局配置保存在一个地方的好方法,而且它减少了用于签名的数据库查找。如果由于某种原因站点管理员决定更改它 - 他们可以通过 Web 管理界面进行更改,该界面将更新我的设置表(与设置模型相关联)。
这一切都很好,但是存储 configatron.rb 的最佳位置是什么?现在它位于我的初始化程序文件夹中。这意味着它将在应用程序启动时加载一次-这很好,但是如果其中一项设置发生更改-站点管理员决定调整电子邮件签名以提及新的促销网站-为了使更改生效-我需要重新启动应用程序(正在运行的乘客 - 所以touch tmp/restart.txt
从代码中做起来很简单)。但是,这意味着我不会重置的其他配置器设置(例如我的正常运行时间开始时间戳)也将被重置。
那么有什么更好的地方来移动我的 configatron.rb 并从中加载,以便它允许在启动时加载一次,然后在不重新启动应用程序的情况下更改一些配置?
谢谢。