2012-04-23 12 views
3

私は現在、フロントエンドとして動作するRailsアプリケーションとともに、スタンドアロンのルビーアプリケーションを開発中です。 RubyアプリとBundlerの依存関係を管理しているので、2つのgemfilesがあります。Railsから外部レイクタスクを呼び出す:依存関係の問題

rakeタスクへのシステムコールを介してRailsフロントエンドからRubyアプリケーションを実行しようとして問題が発生しました。

私はrakeタスクを標準IRBから呼び出すと動作します。しかし、Railsコントローラやレールコンソールからタスクを呼び出そうとすると、依存関係の問題が発生します。

回避策として、Railsアプリケーションに存在しないすべての宝石をRails Gemfileに追加できますが、このアプローチは間違っていると思います。

Bundlerの範囲に問題があると思われます。この問題を回避するにはどうすればよいですか?

ありがとうございました。

答えて

2
fork do 
    Dir.chdir("/your/project/dir") 
    ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', __FILE__) 
    Bundler.setup 
    exec "rake -T" 
end 
+0

非常にありがとうございます! – bruno077

+0

同様に、ENV ['BUNDLE_GEMFILE'] = "" 'を設定すると便利な場合があります。 – merlin2011