部署与capistrano 3和每当宝石

时间:2017-06-01 20:43:09

标签: ruby-on-rails capistrano capistrano3 whenever whenever-capistrano

我尝试使用whenever使用capistrano 3 gem部署我的应用。

我向Capfile添加了require "whenever/capistrano",并且:

set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" } to config / deploy.rb。

当我部署它时,我收到一个错误:

01 bundler: failed to load command: whenever (/home/deploy/www/laptophits/shared/bundle/ruby/2.2.0/bin/whenever)

NameError: undefined local variable or method `extract' for #<Whenever::JobList:0x00000002edf6c8>
      config/schedule.rb:9:in `block in initialize'

当我ssh到生产机器并尝试手动运行时使用:/home/deploy/www/laptophits/shared/bundle/ruby/2.2.0/bin/whenever

我收到错误:

/home/deploy/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem whenever (>= 0.a) (Gem::GemNotFoundException)
        from /home/deploy/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems.rb:299:in `activate_bin_path'

知道怎么解决吗?

1 个答案:

答案 0 :(得分:1)

关键错误在

NameError: undefined local variable or method `extract' for #<Whenever::JobList:0x00000002edf6c8>
  config/schedule.rb:9:in `block in initialize'

config/schedule.rb的第9行可能存在代码错误。可能使用的方法extract不存在于对象或您正在使用它的上下文中。