3

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

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

:some_taskin是什么task :some_task => :environment意思?

是否将在部分中调用的方法名称DO SOMETHING

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

4

2 回答 2

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执行“环境”任务,如果您在轨道上,则加载环境。这可能需要很长时间,但如果您的任务与数据库一起使用,它也会为您提供帮助。

于 2011-11-01T13:39:21.370 回答
1

在您的示例中,您定义了一个名为的任务,可以通过在命令行some_task上调用来调用该任务。rake some_task

这将取决于environment你的新任务之前符文的任务some_task。在 rails 中,environment任务设置 rails 环境(加载库,准备数据库连接,...),这非常昂贵,因此是可选的。

于 2011-11-01T13:39:43.040 回答