我正在使用我的应用内的引擎并在engines/MY_ENGINE/app/mailers
内为此引擎创建邮件程序,但我得到了uninitialized constant MY_ENGINE::TicketMailer
。
通过执行puts $:
检查加载的路径我看到rails在app文件夹中加载了资产,控制器,模型和帮助程序,但没有加载邮件程序。
有没有办法解决这个问题并添加要加载的路径?
答案 0 :(得分:0)
我找到了解决这个问题的方法。显然mailers文件夹没有自动加载,但您可以手动将文件夹添加到加载路径中,将{1}}这样的行添加到您的engine.rb
:
paths['app/mailers'] << 'MY_ENGINE/app/mailers'
像这样:
module MY_ENGINE
class Engine < ::Rails::Engine
isolate_namespace MY_ENGINE
paths['app/mailers'] << 'MY_ENGINE/app/mailers'
end
end
解决了这个问题。