我正在编写一系列 Rails 生成器,它们将共享几个相同的方法。我想将这些方法抽象为它们自己的模块或类,以便在我的每个生成器中重用(但不会自动触发)。
我最近的尝试是自动加载一个帮助文件,然后包含它:
lib/my_gem/engine.rb
module MyGem
class Engine < Rails::Engine
config.autoload_paths += Dir["#{config.root}/lib/helpers/**"]
end
end
lib/helpers/generators_helper.rb
module MyGem
module GeneratorsHelper
def some_method
# ...
end
end
end
lib/generators/my_gem/my_generator.rb
# ...
include MyGem::GeneratorsHelper
# ...
但我会看到类似的东西Error: uninitialized constant MyGem::GeneratorsHelper.