【发布时间】:2013-10-13 23:35:59
【问题描述】:
我有以下schedule.rb
every 1.minute do
runner "User.persist_things"
end
但是查看我的log/cron.log 文件,输出如下:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- bundler/setup (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/felipeclopes/projects/example/config/boot.rb:6
from script/rails:5:in `require'
from script/rails:5
我正在使用带有 ruby 的 RVM,当前版本是:
$ ruby --version
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin10.8.0]
看来 cron 作业正在加载不正确的 ruby 版本,但我不知道如何解决这个问题。你能帮我弄清楚吗?
【问题讨论】:
-
只做 gem install bundler,然后再试一次
-
我这样做了,但没有成功!
-
您可以在
User模型中发布您的方法吗?使用 runner 时,请确保将方法定义为self.persist_things。 -
它是一个类方法。问题可能与正在加载的错误 ruby 版本或类似的东西有关。这是环境问题。
-
你能从 Rails 控制台或通过 rake 任务成功调用
User.persist_things,在 When 上下文之外吗?
标签: ruby-on-rails ruby cron whenever