首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails应用程序中存储Configatron配置的正确/best位置是什么?

在Rails应用程序中存储Configatron配置的正确/best位置是什么?
EN

Stack Overflow用户
提问于 2011-10-13 23:09:13
回答 2查看 919关注 0票数 2

我正在为一个由ActiveRecord支持的新Rails应用程序使用configatron gem。我的一些configatron设置是在一个文件中设置的,还有一些是从DB中提取的,因为它们会不时地更改,下面是我的configatron.rb中的几行

代码语言:javascript
复制
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并从中加载,这样它就可以在启动时加载一次,然后在不重新启动应用程序的情况下更改一些配置?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-13 01:14:45

我认为把它放在初始化器中是存储它的正确位置。

如果您想在不重新启动应用程序的情况下更新配置,通常需要设置一个"watchdog“。一些定期拉取数据库以检查配置更新的过程。您还可以实现某种回调,将更改后的配置推送到您的应用程序中。

票数 1
EN

Stack Overflow用户

发布于 2014-09-30 19:38:54

当我将configatron设置为初始化器时,Rails环境变量在加载configatron设置之前加载。因此,在Rails配置(config/environment/production.rb)中加载的中间件无法使用configatron变量。

所以我最终把它作为environment.rb的第一件事来加载

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7756275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档