如何从数据库加载配置,仅在应用程序重新启动或触摸URL时刷新

好的,我有一个Rails 3应用程序,我使用CouchDB作为我的主数据库,以利用它的复制功能。 无论如何,我想要做的是将一些配置类型的东西存储在数据库中的1个文档中,并在应用程序在生产中启动时加载此配置文件的值一次,并且仅在用户进入管理面板并显式请求时重新加载它会发生。我想通过触摸URL来清除加载的配置或其他东西。 我的想法是我只是在application_controller中创建一个before_filter,但由于我是rails的新手,我不知道这是否是正确的方法。
before_filter :get_config

private

def get_config
  @config = Config.get('_id')
end
显然,这将运行我不想要或不需要的每个请求。有没有办法保存配置输出,所以我不必每次请求获取它,或者是否有更好的方法来执行此操作。 提前致谢。     
已邀请:
实际上我正在写一篇关于在rails中使用全局变量的正确方法的文章。这似乎是引入全局变量的情况,因为它们的值在不同用户之间共享。 在你的before_filter中,试试这个:
def get_config
  $config ||= Config.get('_id')
end
只有当
$config
为假或零时才会调用
Config.get('_id')
。否则,$ config wiil保持不变。 棘手的部分是整个应用程序中存在的全局变量(以
$
符号开头)。所以
$config
随处可用(对于粗心的设计来说这将是一个问题!) 另一点是,正如你所说的你是rails的新手,我建议你在使用它之前阅读更多有关全局变量的内容,并且不要对它进行补充。     

要回复问题请先登录注册