Rails 7 活动作业自动加载问题
我的 Rails 7 应用程序中有一个应用程序目录 app/beer,在该文件夹中有一个名为cool.rb 的文件,其中包含已定义的执行方法。
因此,在 ActiveJob DrinkSudsJob 执行方法中,我调用 Cool.rb 中的执行方法:
def perform
Beer::Cool.execute
end
但我的应用程序崩溃了。告诉我 统一常量 DrinkSudsJob::Beer
Zeitwerk:check 告诉我一切都很好。我在这里做错了什么?
bin/rails r 'puts ActiveSupport::Dependencies.autoload_paths'
/Users/sputz/Documents/Workspace/Apps/2022/fug/app/beer
I have an app directory in my Rails 7 App, app/beer, and in that folder a file named cool.rb with a defined method execute.
So in an ActiveJob DrinkSudsJob perform method I am calling a method execute from cool.rb as:
def perform
Beer::Cool.execute
end
But my App blows up. Tells me unitialized constant DrinkSudsJob::Beer
Zeitwerk:check tells me everything is fine. What am I doing wrong here?
bin/rails r 'puts ActiveSupport::Dependencies.autoload_paths'
/Users/sputz/Documents/Workspace/Apps/2022/fug/app/beer
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果
zeitwerk:check
通过并且app/beer
位于自动加载路径中,则app/beer/cool.rb
定义(并且必须定义)酷
,而不是Beer::Cool
。If
zeitwerk:check
passes andapp/beer
is in the autoload paths, thenapp/beer/cool.rb
defines (and has to define)Cool
, notBeer::Cool
.