1

我有一个 RubyOnRails 应用程序的 rake 任务文件,它位于 lib/tasks 目录中。运行 [rake db:migrate VERSION=0] 似乎会强制编译器检查 lib/tasks 文件中的语法。如果存在语法错误的文件,则 [rake db:migrate] 不会运行。为什么?那么如果我在 lib/tasks 中有一个坏文件怎么办。这里发生了什么?谢谢。

4

2 回答 2

2

运行时,它会在查找被指示运行的任务之前rake加载所有.rake文件。lib/tasks它加载所有文件,而不是在找到所需任务时停止,因为任务可以在加载顺序的后面被文件覆盖。

您可以通过指定所需的 rakefile 来避免将它们全部加载:

rake mytask --rakefile lib/my_task.rake
于 2009-03-04T22:47:39.590 回答
1

当 Rake 运行时,它会自动加载.rakelib/tasks文件夹中的所有文件。当它加载这些任务时,如果您有语法错误,它将被捕获。

于 2009-03-04T16:03:44.867 回答