在 Rake任务定义中,如下所示:
desc 'SOME description'
task :some_task => :environment do
# DO SOMETHING
end
:some_task
中task :some_task => :environment
的含义是什么?
是否会在DO SOMETHING
部分调用方法名称?
:some_task
可以是描述任务的任意字符串吗?
答案 0 :(得分:4)
事实上,当您创建rake任务时,:some_task
是您正在呼叫的任务的名称。
例如,在这种情况下,您将调用rake some_task
您还可以为任务定义名称空间:
namespace :my_tasks do
desc "My first task"
task :first_task => :environment do
# DO SOMETHING
end
end
然后您将在控制台中调用rake my_tasks:first_task
。
希望它会对你有帮助,
编辑:
正如Holger Just所解释的那样,:environment
执行“环境”任务,如果您在轨道上,则加载环境。这可能需要很长时间,但如果您的任务适用于数据库,il也会帮助您。
答案 1 :(得分:1)
使用您的示例,您可以定义一个名为some_task
的任务,可以通过在命令行上调用rake some_task
来调用该任务。
这将取决于environment
任务,该任务将在您的新some_task
之前生成符文。在rails中,environment
任务设置了rails环境(加载库,准备数据库连接,......),这是非常昂贵的,因此是可选的。