我在Conversation
中有一个名为app/models/conversation.rb
的模型,在Messages::Conversation
中有一个名为app/lib/messages/conversation.rb
的类。当我尝试从控制台调用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
我还有一个名为Message
的模型/类,类似于上面的Conversation
。由于我为这些命名空间,为什么仍然在我的Conversation
文件中寻找Messages::Conversation
而不只是Conversation
中的app/models
?
是否与messages
文件夹和Message
模型有关?如果我将app/lib/messages/...
重命名为app/lib/messages_test/...
,则一切都按预期工作。
答案 0 :(得分:0)
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/**/"]
检查您的config / application.rb,看看它是否有效进行这些调整。不是100%确定它是否有效。