【问题标题】:Appropriate place to store globals (not constants!) in Rails 3在 Rails 3 中存储全局变量(不是常量!)的适当位置
【发布时间】:2011-09-09 17:47:03
【问题描述】:
我浏览了相关问题,但找不到我需要的内容,因为大多数问题都在询问在哪里存储常量,而不仅仅是全局变量。
我希望我的 CMS 在单击按钮时随机选择一种配色方案。不过,在用户自动生成颜色方案之前,我希望能够从多个变量中加载默认的颜色方案。什么地方适合放这些东西?
到目前为止,我一直将设置存储在数据库中,但我想知道是否有简单的方法。出于某种原因,将它们放在 environment.rb 或 initializers.rb 中似乎并没有奏效。
我想指出,我希望这些变量是可编辑的;常量不好。
【问题讨论】:
标签:
ruby-on-rails
ruby
content-management-system
【解决方案1】:
您希望用户只更改其帐户的配色方案吗?如果是这样,则该设置应存储在与该用户关联的数据库中。
如果您将值存储在 config/initializers/color.rb 中的 $color 之类的 Ruby 常量中,它将为所有访问该 Rails 应用程序运行实例的用户设置和重新设置。假设您在 Thin 这样的 Web 服务器中运行了三个生产 Rails 进程,33%(取决于您的负载均衡器)的用户会看到相同的颜色。
初始化程序中的$color 应该在本地工作,但创建变量后您必须重新启动服务器。