2012-10-05 23 views
4

我有一個需要做一些後臺工作的web應用程序。我有一個clock.rb文件,其中包含此:無法使用Clockwork啓動clock.rb模塊 - 來自activesupport的undefined方法

require 'clockwork' 
include Clockwork 

require './config/boot' 
require './config/environment' 

every(5.seconds, 'ticking.get') { Resque.enqueue(TickingJob) } 
[...rest of the code irrelevant...] 

當我嘗試啓動文件,clockwork app/clock.rb,我得到以下錯誤:

/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>': 
It seems your ruby installation is missing psych (for YAML output). 
To eliminate this warning, please install libyaml and reinstall your ruby. 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.0/lib/active_support/configurable.rb:31:in `config': undefined method `inheritable_copy' for #<Hash:0x000000012b3f08> (NoMethodError) 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.0/lib/active_support/configurable.rb:86:in `config' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.0/lib/active_support/configurable.rb:59:in `default_per_page=' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari/config.rb:35:in `block in <module:Kaminari>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari/config.rb:9:in `configure' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari/config.rb:34:in `<module:Kaminari>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari/config.rb:3:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari.rb:38:in `require' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari.rb:38:in `load_kaminari!' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari.rb:47:in `hook!' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari.rb:60:in `load!' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/kaminari-0.13.0/lib/kaminari.rb:73:in `<top (required)>' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `block (2 levels) in require' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `each' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `block in require' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `each' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194[email protected]/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `require' 
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.2.1/lib/bundler.rb:128:in `require' 
    from /home/raph/public/[...]/config/application.rb:7:in `<top (required)>' 
    from /home/raph/public/[...]/config/environment.rb:2:in `require' 
    from /home/raph/public/[...]/config/environment.rb:2:in `<top (required)>' 
    from /home/raph/public/[...]/app/clock.rb:5:in `require' 
    from /home/raph/public/[...]/app/clock.rb:5:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/clockwork-0.4.0/bin/clockwork:12:in `require' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/clockwork-0.4.0/bin/clockwork:12:in `<top (required)>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/clockwork:19:in `load' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/clockwork:19:in `<main>' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>' 

關於「迷幻」的第一個錯誤不似乎相關(我每次都得到它,而且我確實重新安裝了libyaml)。至於第二,我不知道。模塊activesupport的代碼不好?

+0

如果刪除下面的一切需要聲明,你還得到一個錯誤。 – iouri

+0

嗨,是的,如果我只留下要求的陳述,那麼錯誤是完全可能的。 – user1723110

+1

你有沒有試過移動包括髮條以下都需要語句?並將引導環境推向最高層。 – iouri

回答

0

您需要將下面requireinclude Clockwork行:

require 'clockwork'  
require './config/boot' 
require './config/environment' 

include Clockwork 

every(5.seconds, 'ticking.get') { Resque.enqueue(TickingJob) } 
[...rest of the code irrelevant...]