在.rb文件中执行任务

时间:2015-12-11 07:59:00

标签: ruby ruby-on-rails-4

我正在开发一个已经开发了很长一段时间的项目。我试图弄清楚一切是如何工作的,我的下一步是如何更新/填充项目中调用的'库'。

我发现隐藏在某个地方的几个.rake文件,但是它们用在另一个.rb文件中。在所述.rb文件中,设置了几个任务背后的整个逻辑,因此一切都以正确的顺序发生。

现在,这是我的问题:我需要使用.rb文件中的任务来生成库。它们嵌套在命名空间中,我无法弄清楚如何完成任务。

这是library.rb文件中结构的缩短版本:

namespace :library do
  task :something do
  ...
  end
  ...
  namespace :local do
  ...
    namespace :generate do
      task :default do
      ...
      end
    end
  end
end

我想达成任务:默认。

提前感谢您的任何帮助或建议。

编辑: 命令rake library:local:generate:default给出错误:

rake aborted!
Don't know how to build task 'library:local:generate:default'

编辑:我无法更改文件的名称,扩展名或位置。 Library.rb目前位于config/deploy/

3 个答案:

答案 0 :(得分:1)

我假设你想从命令行运行rake任务,在这种情况下你要输入rake library:local:generate:default

您还需要使用library.rb文件来完成任务。您可以使用rake命令上的-f标志执行此操作。例如:rake -f path/to/library.rb library:local:generate:default

答案 1 :(得分:0)

快速解决方案可以使用.rake扩展名重命名该文件并将该文件放在lib / task下,以便您可以使用rake namespace:task

来调用它

答案 2 :(得分:0)

namespace :library do
  task :something do
  ...
  end
  ...
  namespace :local do
  ...
    namespace :generate do
      task default: :environment do
      ...
      end
    end
  end
end

您忘了为其添加环境。再次尝试相同的rake任务命令:

rake library:local:generate:default

这可能对您有所帮助