Heroku - 用于导入模块的未初始化常量

Heroku - Uninitialized constant for importing a module

我有一个模块

lib/Basicstats.rb   (module Basicstats ...etc. end)

我正在将其导入模型

class Vote < ActiveRecord::Base
    include Basicstats
    #additional class code etc.
end

I grep-d 模块和 'Basicstats' 仅在 Basicstats.rbapp/model/vote.rb 中引用。

这对我的本地开发很有效。但是在我的 Heroku 部署过程中,我收到了这个错误,它似乎无法识别模块? (我也很好奇这在我的本地开发中如何工作而无需任何地方。)

2015-03-28T22:19:52.714077+00:00 app[web.1]: /app/app/models/vote.rb:16:in `<class:Vote>': uninitialized constant Basicstats (NameError)

听起来 Rails 没有明确要求或自动加载您的模块(这 will/won 不会发生,具体取决于您使用的 Rails 版本和config.autoload_paths 是如何配置的)。

您最好的选择是添加一个明确需要您的模块的初始化程序:

# config/initializers/basicstats.rb

require Rails.root.join('lib/basicstats')