在ruby代码中调用命名空间的rake任务

问题描述 投票:0回答:2

鉴于一些ruby文件foo.rb

require 'rake'

namespace :tmp do
  desc "Foo bar baz.."
  task :some_task do
    puts "running some task..."
  end
end

如何在ruby中调用命名空间任务tmp:some_task任务?

我试过了:

require_relative 'foo'
#=> true
Rake::Task[tmp:some_task].invoke
#=> NameError: undefined local variable or method `some_task' for main:Object
ruby rake
2个回答
2
投票

您正在调用该任务 - 将任务名称作为字符串传递:

Rake::Task['tmp:some_task'].invoke

0
投票

接受的答案是正确的。但是,从rails,从Rails调用任何rake任务。你需要先加载它们。

require 'rake'
Rails.application.load_tasks
Rake::Task['my_task'].invoke
© www.soinside.com 2019 - 2024. All rights reserved.