你如何避免依赖的Rake任务名称冲突?

Car*_*nke 3 ruby-on-rails rake-task

namespace :jobs do
  task :environment => [:environment] do
    #Something cool
  end
end
Run Code Online (Sandbox Code Playgroud)

这将导致循环依赖:environment,这我只是想依靠Rails的任务environment.

如何才能正确设置?

小智 10

你也应该说:

task :environment => [ 'rake:environment' ] do ... end
Run Code Online (Sandbox Code Playgroud)

'rake:'命名空间是顶级命名空间.这就像在ruby中做:: CONSTANT_NAME.


bee*_*ack 5

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

namespace :jobs do
  task :environment => [ '^environment' ] do
    #Something cool
  end
end
Run Code Online (Sandbox Code Playgroud)

您使用的每个插入符号将在命名空间层次结构中开始更高级别的名称解析.请参阅:http://rake.rubyforge.org/files/doc/rakefile_rdoc.html