[英]LoadError: Unable to autoload constant
I have a model called Conversation
in app/models/conversation.rb
and a class called Messages::Conversation
in app/lib/messages/conversation.rb
. 我在
app/models/conversation.rb
有一个称为Conversation
app/models/conversation.rb
,在app/lib/messages/conversation.rb
有一个名为Messages::Conversation
的类。 When I try to call Conversation
from console (expecting to get the model) it returns: 当我尝试从控制台调用“
Conversation
(期望获得模型)时,它将返回:
[1] pry(main)> Conversation LoadError: Unable to autoload constant Conversation, expected .../application/app/lib/messages/conversation.rb to define it [2] pry(main)> Messages::Conversation => Messages::Conversation
I also have a model/class called Message
similar to the above Conversation
. 我也有一个类似于上面的
Conversation
称为Message
的模型/类。 Since I am namespacing these, why is still looking for Conversation
in my Messages::Conversation
file instead of just Conversation
in app/models
? 由于我这些命名空间,为什么还在找
Conversation
在我Messages::Conversation
文件,而不是只是Conversation
中app/models
?
Does it have something to do with having a messages
folder and Message
model? 它与
messages
文件夹和Message
模型有关吗? If I rename app/lib/messages/...
to app/lib/messages_test/...
, everything works as expected. 如果我将
app/lib/messages/...
重命名为app/lib/messages_test/...
,那么一切都会按预期进行。
Before
# config/application.rb
config.autoload_paths += Dir["#{config.root}/lib/**/"]
After
# config/application.rb
config.autoload_paths += Dir["#{config.root}/app/models/"]
config.autoload_paths += Dir["#{config.root}/lib/**/"]
Check your config/application.rb and see if it works when you make these adjustments. 检查您的config / application.rb并在进行这些调整时查看它是否有效。 Not 100% sure if it will work.
不能100%确定它是否会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.