gpt4 book ai didi

ruby-on-rails - rails 重新加载!重置类变量,需要重新运行一些初始化程序

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:04 24 4
gpt4 key购买 nike

假设我需要解析一些配置来实例化一些服务单例(可以使用或不使用 Rails)。

示例代码示例:

#services/my_service.rb
module MyService
@config = nil

def self.load_config(config)
@config = config
end

当与 Rail(或 Capistrano、SInatra 等)一起使用时,我会使用初始化器来启动服务

#initializers/svc.rb
MyService.load_config(Rails.application.secrets.my_service.credentials)

但是当专门用于 Rails 时,在每个 Rails 控制台 restart! 上,这个 @config 变量被清除,这是一个问题...

有没有

  • after-reload! 我可以用来重新运行初始化程序的 Hook ?
  • 将在重启时保留的其他类型的变量!我可以在这里使用吗?

最佳答案

您可以将配置方法定义为:

定义配置
@config ||= Rails.application.secrets.my_service.credentials
结束

并且调用这个方法而不是@config,所以当配置变量被取消设置时,它会被重新设置,否则它会返回值。

关于ruby-on-rails - rails 重新加载!重置类变量,需要重新运行一些初始化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753873/

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