Rails 5需要应用程序控制器中的初始化程序

我的应用程序需要在初始化时进行一些预计算。 我有一个Ruby文件config/initializers/start_1.rb ,在这个文件中,我require /config/lib/init_module.rb的通用模块,如下所示:

 require './lib/init_module.rb' Init::Class1.new Init::Class1.new 

/config/lib/init_module.rb文件中,我为每个新对象增加一个值,如下所示:

 module Init class Class1 @@local = 0 def initialize @@local += 1 end def self.local @@local end end end 

在我的应用程序控制器中,对于来自客户端的每个请求,我想使用此预先计算的值。

  1. 如果我在我的应用程序控制器中require /config/lib/init_module.rb ,它将不会给我任何关于本地值的信息(= 0 ),因为每个请求都会创建一个新实例。 (实际上,我不明白为什么@@local是一个类变量。)
  2. 如果我在我的应用程序控制器中require /config/initializers/start_1.rb ,它将为每个请求运行初始化程序,这将导致巨大的开销。

我很感激您对我的问题的建议。

我使用.pow服务器为我的应用程序提供本地域名,问题是让.pow服务器为每个请求重新加载,从我的应用程序删除tmp / restart.txt后,问题解决了! 谢谢你的帮助。