0

コマンドラインから手動で実行すると問題なく実行される小さなrubyスクリプトがあります。「geminstallX」を使用してインストールした3つのgemを使用し、スクリプトファイルの上部に「requireX」という行があります。すべて正常に動作します。

現在、Rakeでrubyスクリプトを呼び出すタスクを作成しています。私は両方を使用しようとしました

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

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

しかし、両方とも私にこのエラーを与えます:

myscript.rb:2:in `require':ロードするそのようなファイルはありません--ruby-audio(LoadError)

宝石が正しくロードされていないようです。RailsアプリのGemfileにgemを追加しようとしましたが、必要なgemをすべて追加して実行bundle updateした後、スクリプトからmysqlアダプターが機能せずにエラーが発生しました。

しかし、スクリプトはコマンドラインから問題なく機能するので、Rakeタスク内からスクリプトを呼び出す簡単な方法があるはずだと思いました。

何か案は?

4

1 に答える 1

3

使用する

bundle exec <script>

実行したいスクリプト用にバンドルされた Gem を確実にロードするには

于 2013-03-04T09:57:10.320 に答える