为什么我不能在我的任务中使用Capistrano的info方法?

时间:2015-09-03 07:25:16

标签: ruby-on-rails capistrano3

我想使用info在重写的Capistrano任务中输出一些内容,就像capistrano-rails一样(例如here)。

但是有了这个任务:

namespace :deploy do

  if ENV['DB_MIGRATE'] == 'skip'
    Rake::Task['deploy:migrate'].clear_actions

    desc "Override Capistrano's default behavior, do not migrate on deploy"
    task :migrate do
      info '[deploy:migrate] Skipping migrations due to DB_MIGRATE=skip'
    end
  end

end

我收到此错误:

$ DB_MIGRATE=skip bundle exec cap staging deploy:migrate
(Backtrace restricted to imported tasks)
cap aborted!
NoMethodError: undefined method `info' for main:Object

Tasks: TOP => deploy:migrate
(See full trace by running task with --trace)

在我自己的任务中使用info需要做些什么?

1 个答案:

答案 0 :(得分:2)

Capistrano公开info块内的on方法

image

  

Capistrano公开方法debug(),info(),warn(),error()和   onal()块中的fatal()可用于使用   现有的日志记录基础结构和流式IO格式化程序: