LoadError:无法自动加载常量

时间:2017-03-16 16:30:47

标签: ruby-on-rails ruby

我在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/...,则一切都按预期工作。

1 个答案:

答案 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%确定它是否有效。