真的是新手问题...
我项目中的许多应用程序在 gem 中有很多共享代码。我正在尝试在该 gem 中添加一个例程,该例程将由多个应用程序中的 rake 任务共享。
所以在 gem lib/utilities 目录中我有 cleanup.rb:
module Utilities
class Cleanup
def self.perform
puts "Performing cleanup"
end
end
end
然后在应用程序中,在 lib/tasks 中,我有 cleanup.rake:
require "utilities/cleanup"
namespace :mynamespace do
task :do_cleanup => :environment do
Utilities::Cleanup.perform
end
end
我从 rake mynamespace:do_cleanup 得到的只是“未初始化的常量 Utilities::Cleanup”。
我已经尝试了上述几种变体。我的 gem 是用 bundler 管理的,但是“bundle exec rake ...”给出了相同的结果。我尝试使用gem "utilities/cleanup"
而不是要求。
(我发誓,我想弄清楚如何在模块和类之间进行通信比用这种语言更重要!它总是“我在这里引用哪个代码?”和“为什么它找不到我的类写的?”)