我从名为 Plac 的模型中引用自定义类
模型在 models/plac.rb 中定义如下:
class Model < ActiveRecord::Base
def notify_owner
notifier = BatchNotify.getInstance
end
end
BatchNotify 在 lib/modules/batch_notify.rb 中定义,如下所示:
class BatchNotify
def self.getInstance
env = Rails.env
if(env == "test")
return TestBatchNotify.new
else
BatchNotify.new
end
end
end
我还将模块目录添加到 autoload_path:
config.autoload_paths += %W(#{config.root}/lib/modules)
奇怪的是,当 notify_owner() 在 rails 控制台上运行良好时。
但是,当我使用 rails server 启动 Web 服务器并尝试通过在浏览器中使用该应用程序来触发 notify_owner 时,我收到以下错误:
未初始化的常量 Plac::BatchNotify
首先,为什么控制台与 Web 服务器的行为不同?
其次,为什么它仍然无法识别 Batch notify 常量?
顺便说一句,我还尝试在模块中定义 BatchNotify 并将其引用为 Module::BatchNotify 但没有运气......