gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中,如何使全局常量在开发模式下自动加载,而无需重新启动服务器?

转载 作者:数据小太阳 更新时间:2023-10-29 08:30:33 25 4
gpt4 key购买 nike

例如目前我将全局常量放在 config/initializers/constants.rb 文件中,内容如下:

KB = 1000

我希望我的应用在添加此行时立即识别 MB,而无需重新启动服务器:

MB = KB * KB

这可能吗?

最佳答案

初始化器被设计为在应用程序初始化时只触发一次。如果您想要可重新加载的内容,请将其放在 lib 文件夹内的单独模块中。这是关于 Autoloading and Reloading Constants 的完整主题:

  module Colors
RED = '0xff0000'
end

请注意,您还必须调整您的 application.rb

 config.autoload_paths << "#{Rails.root}/lib"

因此,对于您的情况,它将是 lib 中的文件 constants.rb:

module Constants
KB = 1000
end

然后在你的类中你可以使用你的常量:

class Something
include Constants
MB = KB * KB
end

如果您在页面重新加载时更改 KB 的值,此处 MB 将更改,并且不需要重新启动。

关于ruby-on-rails - 在 Ruby on Rails 中,如何使全局常量在开发模式下自动加载,而无需重新启动服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com