在新的rails 4应用程序中,我得到一个模块的未初始化的常量错误。该模块名为ProcessBill,位于lib / process_bill.rb
中控制台错误:
ActionController::RoutingError (uninitialized constant BillsController::ProcessBill):
控制器代码:
class BillsController < ApplicationController
include ProcessBill
LIB / process_bill.rb
module ProcessBill
答案 0 :(得分:63)
您是否在自动加载路径中添加了lib?这在Rails 3中是必要的,我不确定它是否仍然需要Rails 4。
尝试将其添加到config/application.rb
-
config.autoload_paths += %W(#{config.root}/lib)
答案 1 :(得分:33)
我在使用Rails 5的lib目录时遇到了这个问题,它出现在生产中,但没有在开发中。要修复它,您需要将lib目录添加到eager_load_paths。以下是我的application.rb中的相关部分:
Resolving Prism.Unity.Navigation.UnityPageNavigationService,(none)
Calling constructor Prism.Unity.Navigation.UnityPageNavigationService(Microsoft.Practices.Unity.IUnityContainer container)
.
答案 2 :(得分:3)
尝试将此行添加到控制器的顶部:
require "#{Rails.root}/lib/process_bill.rb"
答案 3 :(得分:3)
这也适用于您的application.rb文件中的Rails 5:
config.autoload_paths << Rails.root.join('lib')
config.autoload_paths << Rails.root.join('lib/notifier')