我想将控制器中的某些代码重构为模块,因此我将文件放入lib
。
# lib/updat_lock.rb
module UpdateLock
# ...
end
# app/controllers/boilerplates_controller.rb
class BoilerplatesController < InheritedResources::Base
include UpdateLock
# ...
end
但遗憾的是,该文件似乎没有被加载,因为我得到uninitialized constant BoilerplatesController::UpdateLock
异常。这有什么不对?我以为lib
文件夹总是自动加载?
更新
虽然提供了解决方案,但我忘记的是在控制器文件的顶部添加require 'update_lock'
。
答案 0 :(得分:2)
将此行添加到application.rb
config.autoload_paths += Dir["#{config.root}/lib/**/"]