gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中跨页面加载持久保存 Ruby 类变量?

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:34 25 4
gpt4 key购买 nike

我有一个类变量,我想从初始化程序中设置它,并从那时起保留该值。下面的示例仅适用于第一页加载。有更好的方法吗?

应用/模型/token.rb

class Token    
class << self
attr_accessor :salt
end
end

配置/initilizers/token.rb

Token.salt = "savory hash"

最佳答案

在开发模式下,每次请求都会重新加载您的类,因此在应用程序启动时在初始化程序中设置的值不会在第一次请求后重新加载类时保留。 (您的 development.rb 中“config.cache_classes = false”的结果)。

但是,如果你想在初始化器中设置一个值并让它在开发模式下持久化,你可以将它添加为常量:

初始化器.rb

 SALT='savory_hash'

或作为应用程序配置变量:

应用.rb

 module YourAppsName
class Application < Rails::Application
config.token_salt = "savory_hash"
end
end

可以在应用程序的任何地方访问:

 Rails.application.config.token_salt

当然,如果您在您的环境中启用了类缓存,您应该会发现您的变量值将在不执行上述任何操作的情况下保持不变。

关于ruby-on-rails - 如何在 Rails 中跨页面加载持久保存 Ruby 类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085566/

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