2017-03-16 47 views
1

我在app/models/conversation.rb中有一个名为Conversation的模型,在app/lib/messages/conversation.rb中有一个名为Messages::Conversation的类。当我尝试调用Conversation从控制台(期望得到的模型),它返回:LoadError:无法自动加载常量

 

    [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模型/班。由于我正在命名这些空间,为什么还要在我的Messages::Conversation文件中寻找Conversation而不是Conversationapp/models

这是否与messages文件夹和Message型号有关?如果我将app/lib/messages/...重命名为app/lib/messages_test/...,则一切都按预期工作。

+0

尝试'::对话' –

+0

我试过并得到了相同的'LoadError:无法自动加载...'错误,它正在查看'messages/conversation' – chrisjacob

+0

您可以添加文件路径和文件夹吗?我敢打赌这是你的文件路径的问题。 – Taysky

回答

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%确定它是否可以工作。

+0

在我遇到这个问题之前,后面实际上是如何设置我的'autoload_paths'。不幸的是,这些都没有修复它。 – chrisjacob

相关问题