非Rails应用中如何设置ActiveSupport cache_format_version?
解决独立使用ActiveSupport::Cache时的格式版本设置问题
问题背景
我通过require 'active_support/cache'在非Rails的小型应用中使用ActiveSupport::Cache,现在需要设置cache.active_support_cache_format_version来解决废弃警告,但找不到合适的方法——网上资料都是针对Rails配置的,直接操作缓存对象也没找到公开方法。
当前使用代码:
@cache = ActiveSupport::Cache::FileStore.new("/tmp/[...]")
@cache.fetch([...]) do # 缓存逻辑 end
解决方案
有两种可行的方式设置格式版本:
方式一:初始化时传入参数
在创建缓存实例时,直接通过active_support_cache_format_version参数指定版本,这是最规范的做法:
@cache = ActiveSupport::Cache::FileStore.new("/tmp/[...]", active_support_cache_format_version: 7.1)
方式二:给实例变量赋值
如果需要在实例创建后修改,可以直接操作缓存对象的实例变量:
@cache = ActiveSupport::Cache::FileStore.new("/tmp/[...]") @cache.instance_variable_set(:@active_support_cache_format_version, 7.1)
注意:版本号请根据你使用的ActiveSupport版本对应设置,比如7.1是对应Rails 7.1的缓存格式版本。
内容的提问来源于stack exchange,提问作者yenadar
相关产品推荐
相关产品推荐

