3
namespace :jobs do
  task :environment => [:environment] do
    #Something cool
  end
end

这会导致循环依赖:environment我只是想依赖 Rails 任务environment

如何正确设置?

4

2 回答 2

10

您还应该能够说:

task :environment => [ 'rake:environment' ] do ... end

'rake:' 命名空间是顶级命名空间。这就像在 ruby​​ 中做 ::CONSTANT_NAME 一样。

于 2012-03-03T21:12:13.597 回答
5

我刚刚遇到了完全相同的问题,命名空间中的任务试图调用父命名空间中的同名任务。这确实是可能的。

namespace :jobs do
  task :environment => [ '^environment' ] do
    #Something cool
  end
end

您使用的每个插入符号都将在命名空间层次结构中开始名称解析上一级。见:http ://rake.rubyforge.org/files/doc/rakefile_rdoc.html

于 2012-03-03T11:38:21.880 回答