如何运行rake任务?

vik*_*nki 7 ruby rake ruby-on-rails

我有一个现有的.rake文件.它先前有一个任务,而且我现在又向现有的rake文件添加了一个任务.

但是当我试图跑步时,它给我一个错误

"rake aborted!不知道如何构建任务___"

abc.rake文件:

rake aborted!
Don't know how to build task ___ 
Run Code Online (Sandbox Code Playgroud)

但是当我使用命令时:rake abcd:abcde:mno - 它显示上面的错误

所以我用rake -T -A,我能看到rake abcd:abcde:pqr

但无法看到其他人.

我是铁杆新手.请帮帮我.

提前致谢.

小智 14

这就是你想要的......

在lib/tasks内部创建文件abcd.rake

在abcd.rake文件中写下以下代码

namespace :abcd do
  namespace :abcde do

     task :pqr do
       puts 'Inside PQR'
     end

     task :new_added_task do
       puts 'Inside New Added Task'
     end

     task :mno => [:new_added_task]  do
       puts 'Inside Mno'
     end

   end
end
Run Code Online (Sandbox Code Playgroud)

现在尝试以下命令....

rake abcd:abcde:pqr           #  Output => Inside PQR 

rake abcd:abcde:mno           #  Output => Inside New Added Task
                              #            Inside Mno

rake abcd:abcde:new_added_task  # Output => Inside New Added Task
Run Code Online (Sandbox Code Playgroud)

查看所有任务运行命令

rake -T -A 
Run Code Online (Sandbox Code Playgroud)

它将显示所有任务以及您自己创建的任务......

rake abcd:abcde:mno                                 # 
rake abcd:abcde:new_added_task                      # 
rake abcd:abcde:pqr                                 # 
.............
Run Code Online (Sandbox Code Playgroud)


小智 1

这是给您的测试代码:

在 ../lib/tasks/abcde.rake 下创建文件 abcde.rake

namespace :abcde do
  desc 'pqr pqr pqr pqr'
  task :pqr => :environment do
    puts 'pqr'
  end
  desc 'mno mno mno mno'
  task :mno => :environment do
     puts 'mno'
  end
end
Run Code Online (Sandbox Code Playgroud)

然后运行这个命令

rake -T
Run Code Online (Sandbox Code Playgroud)

上述命令的输出是:

rake abcde:mno                                   # mno mno mno mno
rake abcde:pqr                                   # pqr pqr pqr pqr
Run Code Online (Sandbox Code Playgroud)

跑步

rake abcde:mno #mno
Run Code Online (Sandbox Code Playgroud)