我有一个带有 5 个不同名称空间的 Rakefile,每个名称空间都有相同的 6 个方法签名。每个签名的正文完全相同。它们仅在方法使用的实例变量的值上有所不同。
一个具体的例子:
namespace :db do
namespace :foo do
@user = "foo"
task :create do
function_call_to_do_stuff @user
end
end
namespace :bar do
@user = "bar"
task :create do
function_call_to_do_stuff @user
end
end
end
理想情况下,我希望能够做这样的事情:
module Migratable
task :create do
function_call_to_do_stuff @user
end
end
namespace :db do
namespace :foo do
include Migratable
@user = "foo"
end
namespace :bar do
include Migratable
@user = "bar"
end
end
当我执行上面显示的操作时,mixin 中的任务不会注册为适当命名空间的任务 - 或者根本就不会注册为任务。有没有办法做到这一点?