【问题标题】:Can I reconfigure a live Rails application?我可以重新配置实时 Rails 应用程序吗?
【发布时间】:2011-06-06 04:17:45
【问题描述】:

在已运行的 Rails 应用程序上更改应用程序设置 (config.*) 是否安全?

如何将更改持久化,最好保存到数据库中?

更新

我想让管理员通过管理员控制面板配置 Action Mailer 等内容,但我不确定 Rails 是否会接受这些更改。

【问题讨论】:

  • 这些设置会在应用程序运行期间更改,还是只是像帐户设置这样的一次性配置?
  • 它们可能会经常变化。假设管理员在运行时向应用程序添加了几个主题,这些主题由不同的 CSS 文件组成,每个主题位于不同的目录中。然后他会更改config.stylesheets_dir 以指向他想要使用的主题。全部无需重启服务器。

标签: ruby-on-rails configuration ruby-on-rails-3


【解决方案1】:

另一种代替查询数据库的方法是使用环境变量。

这是您访问环境变量的方式:

ENV['name']

例如,您可以在 .bash_rc 中定义这些变量。

【讨论】:

  • 解决持久化问题的好方法,但是我可以在 Rails 运行时设置它的配置变量吗?类似于config.action_mailer.perform_deliveries = params[:perform_deliveries] 中的update 操作中的SettingsController
  • @Matheus Moreira:我认为你可以。例如,我在每个场景中更改 Capybara 的 conf 以更改子域。我认为这是与邮件类似的情况。你最好的拍摄是测试它。
  • 很好,我试试看。
  • Answer 不回答问题。
  • @Nerian:Capybara 的配置与 Rails 配置完全不同。 Rails 在 all 和 any 规范运行之前加载。因此,在一开始更改一个 Rails 配置设置将适用于 所有 规范。目前,我不知道 Rails 配置设置可以在运行时更改;这就是问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
相关资源
最近更新 更多