从cron中获取任务 - 未初始化的常量YAML :: ENGINE

时间:2011-08-12 19:08:47

标签: ruby-on-rails-3 ruby-1.9.2

自从我将服务器升级到ruby 1.9.2后,从cron运行rake任务时,我得到了未初始化的常量YAML :: ENGINE。我在应用程序中遇到了同样的错误但放了......

require 'yaml'
YAML::ENGINE.yamler= 'syck'
boot.rb文件中的

修复了它。如果我直接从我的Ubuntu服务器上的命令行运行任务它工作正常,服务器使用RVM。

然而,从cron运行任务似乎没有解决这个问题,我试过这个......

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

无济于事。

1 个答案:

答案 0 :(得分:4)

你确定你在Ruby 1.9.2下运行吗?因为虽然YAML :: ENGINE存在于1.9.2中,但它不在1.8.7中。检查您的Ruby版本。

<强>更新

如何判断程序中正在使用哪个Ruby版程序:

puts `ruby -v`

Lame方式如何强制cron任务在某些Ruby版本下运行(如果服务器使用RVM):

rvm use 1.8.7; ...