我想创建一个非常简单的rake任务。从一个主要任务我想调用所有子任务。我试过这段代码:
namespace :my_namespace do
task create_all_users: :environment do
puts "Creating all users"
create_admin
create_user
end
task create_admin: :environment do
puts "Creating admin user"
######
end
task create_user: :environment do
puts "Creating user"
######
end
end
但我得到错误:
NameError: undefined local variable or method `create_admin' for main:Object
调用任务的正确方法是什么?
答案 0 :(得分:1)
将默认任务放在命名空间之外,如here所述。或使用@ tthomas7 referred answer
建议的实际方法使用选项1 ,您的代码将如下所示:
namespace :my_namespace do
task create_admin: :environment do
puts "Creating admin user"
######
end
task create_user: :environment do
puts "Creating user"
######
end
end
task create_all_users: :environment do
puts "Creating all users"
Rake::Task["my_namespace:create_admin"].invoke
Rake::Task["my_namespace:create_user"].invoke
end