开发者

Rake tasks from cron - uninitialized constant YAML::ENGINE

I am getting uninitialized constant YAML::ENGINE when running a rake task from cron since I upgraded my server to ruby 1.9.2. I had the same error with the app but putting ...

require 'yaml'
YAML::ENGINE.yamler= 'syck'

in the boot.rb file fixed 开发者_开发技巧it. If I run the task directly from the command line on my Ubuntu server it works fine, the server uses RVM.

However running a task from cron doesn't seem to pickup this fix, I have tried this ...

task :twitter, :needs => :environment do
  require 'yaml'
  YAML::ENGINE.yamler= 'syck'
  @tweets = Property.updatetwitter
end

to no avail.


Are you sure you're running it under Ruby 1.9.2? Because while YAML::ENGINE exists in 1.9.2, it's not in 1.8.7. Check your Ruby version.

UPDATE

How to tell which Ruby version program is using from within the program:

puts `ruby -v`

Lame way how to enforce cron task to run under certain Ruby version (if server uses RVM):

rvm use 1.8.7; ...
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜