新手,关于Rake任务语法

时间:2011-11-01 13:32:41

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 rake rake-task

Rake任务定义中,如下所示:

desc 'SOME description'
  task :some_task => :environment do
    # DO SOMETHING
  end

:some_tasktask :some_task => :environment的含义是什么?

是否会在DO SOMETHING部分调用方法名称

:some_task可以是描述任务的任意字符串吗?

2 个答案:

答案 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环境(加载库,准备数据库连接,......),这是非常昂贵的,因此是可选的。