3

私は現在、フロントエンドとして機能する Rails アプリケーションと並行して、スタンドアロンの Ruby アプリケーションを開発しています。Ruby アプリの依存関係を Bundler で管理しているので、gemfile が 2 つあります。

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

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

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

Bundler のスコープに問題があるのではないかと思います。この問題を回避するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2
fork do
  Dir.chdir("/your/project/dir")
  ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', __FILE__)
  Bundler.setup
  exec "rake -T"
end
于 2012-04-23T14:18:51.247 に答える