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
在我的应用程序控制器中,对于来自客户端的每个请求,我想使用此预先计算的值。
- 如果我在我的应用程序控制器中
require /config/lib/init_module.rb
,它将不会给我任何关于本地值的信息(=0
),因为每个请求都会创建一个新实例。 (实际上,我不明白为什么@@local
是一个类变量。) - 如果我在我的应用程序控制器中
require /config/initializers/start_1.rb
,它将为每个请求运行初始化程序,这将导致巨大的开销。
我很感激您对我的问题的建议。
我使用.pow服务器为我的应用程序提供本地域名,问题是让.pow服务器为每个请求重新加载,从我的应用程序删除tmp / restart.txt后,问题解决了! 谢谢你的帮助。