从rake任务运行ruby脚本

时间:2013-03-04 09:52:50

标签: ruby-on-rails ruby rake

我有一个小的ruby脚本,当我从命令行手动运行它时运行正常。它使用我使用“gem install X”安装的三个gem,在脚本文件的顶部我有“require X”行。一切正常。

现在我在Rake中创建一个将调用我的ruby脚本的任务。我试过两个都用

system("/tools/myscript.rb #{foo} #{bar}")

`/tools/myscript.rb #{foo} #{bar}`

但两个都给我这个错误:

  

myscript.rb:2:在`require'中:没有要加载的文件 - ruby​​-audio   (LoadError)

似乎宝石没有正确加载。我尝试将gems添加到我的Rails应用程序的Gemfile中但是在添加了所有必需的gem之后我运行了bundle update它的错误结果是mysql适配器无法从我的脚本中运行。

但是由于脚本在命令行中运行得很好,我认为应该有一种简单的方法可以在Rake任务中调用它。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

使用

bundle exec <script>

确保为要运行的脚本加载捆绑的Gems