2

据我记得,在文档中指定在测试环境中,即使您运行 rake (不带参数),数据库也总是被清除。我想实现这样的事情,这样无论我是否运行任务都没有关系,当我运行 rake 时,总会有一个 Rake 任务正在执行。这可能吗?这是默认任务开始的地方吗?

4

1 回答 1

2

rakefile在要从中运行任务的目录中创建一个名为的文件。这段代码将使如果您只键入“rake” my_default_task 将运行:

  task :default => 'my_default_task'

  task :my_default_task do
     puts "Now I am doing the task that Tempus wants done when he/she types 'rake' in the console."
  end

  task :my_not_default_task do
    puts "This isn't the default task."
  end

但是,如果您键入rake my_not_default_task,则my_default_task不会运行。如果您希望它运行,不管这是您可以做的一件事:

task :default => 'my_default_task'

task :my_default_task do
    puts "This is the default task"
end

task :my_not_default_task do
  puts "This isn't the default task."
end

Rake::Task['my_default_task'].invoke

此代码中的最后一行确保 my_default_task 即使在您调用其他任务时也会运行,因此如果您键入rake my_not_default_task'my_default_task也会运行。

编辑:当您使用 rails 时,您可以将上述任务放在文件夹中的文件中,lib/tasks扩展名为.rakerake

Jason Seifer 有一个非常好的关于 rake 的教程

于 2012-05-23T13:17:34.617 回答