与这篇文章有相同的问题,但不幸的是我认为解决方案不一样。
我收到此错误消息:
Rails requires RubyGems >= 0.9.4. Please install RubyGems
当我在 Cron 中运行脚本/运行器作业时,但是当我在同一服务器上的终端中运行它时它工作得非常好。
rails 服务器也运行良好。我只有在 cron 中运行脚本/运行程序时遇到问题。它似乎想要连接一个终端......
与这篇文章有相同的问题,但不幸的是我认为解决方案不一样。
我收到此错误消息:
Rails requires RubyGems >= 0.9.4. Please install RubyGems
当我在 Cron 中运行脚本/运行器作业时,但是当我在同一服务器上的终端中运行它时它工作得非常好。
rails 服务器也运行良好。我只有在 cron 中运行脚本/运行程序时遇到问题。它似乎想要连接一个终端......
尝试从您的 cron 作业以及终端中进行which ruby
。which gem
您是否在访问不同的二进制文件?您没有提及哪个操作系统和哪个外壳,但是$PATH
在无头运行时可能会有不同。
选择的答案是完全正确的,但我建议不要使用脚本/运行器。加载 Rails 应用程序的整个堆栈所需的资源对于定期运行的东西来说是相当密集的。
根据我过去的经验,任何 cron 作业通常只需要处理数据(而不是生成静态文件等)。在这种情况下,您可以非常简单地加载模型,并且由于您以正确的方式编写模型(胖模型),因此您可以使用一些模型方法轻松地进行数据处理。
当然,以上所有内容完全取决于您的任务,因此请谨慎对待 :)
我想这是对一个可能不存在的问题的一种回答,在这里没有被问到,但我只是想我会把我的两分钱扔进去;)
你不会碰巧在 OSX 上工作吗?您应该在 macports 上安装更新的 ruby rails 和 gems。谷歌的说明...
正如之前的帖子所指出的,您的 Cron 正在使用不同的 gem 命令源——也可以尝试which gem
和gem -v
. 您可能在您的.bash_profile
(或类似的外壳配置或可能通过其他方式设置适当的 Ruby/Rails 环境(即 Locomotive 或其他一体化环境)中设置了一个库。
要更新您的 gem 设置:
gem update --system
更多信息在这里 - http://www.rubygems.org/read/book/1