Ruby on rails 具有急切初始化的单例

Ruby on rails 具有急切初始化的单例,ruby-on-rails,singleton,eager-loading,Ruby On Rails,Singleton,Eager Loading,我有一个类X,它需要很多时间来初始化自己。我想将该类设置为singleton,并在rails应用程序启动时强制创建它 我做了单身汉: class X @@instance = nil def self.instance if @@instance.nil? @@instance = X.new puts 'CREATING' end return @@instance end private_class_method :new

我有一个类X,它需要很多时间来初始化自己。我想将该类设置为singleton,并在rails应用程序启动时强制创建它

我做了单身汉:

class X @@instance = nil def self.instance if @@instance.nil? @@instance = X.new puts 'CREATING' end return @@instance end private_class_method :new end X类 @@实例=nil def self.instance 如果@@instance.nil? @@实例=X.new 放置“创建” 结束 返回@实例 结束 私有类方法:新 结束
问题是每次使用这个类时,我都会在日志中看到“创建”。我曾尝试将类的创建放在
初始值设定项
目录中,但它也不起作用。

问题是开发环境中的Rails不缓存类,并且每次请求都会重新加载应用程序代码。

您如何使用该类?给我们看看
self.instance
似乎并没有实际返回一个实例,首先,我的错误得到了纠正。这是我在模型的一种方法中使用的实用类。我在模型中添加了
require
,然后简单地添加了
X.instance.do\u something
当我将初始化放入
initializers
目录时,对类的第一次调用是正确的-没有创建新对象。但是第二次调用导致了新对象的创建。。。