0

Rack、sinatra、vegas の正しい gem バージョンを使用するように resque-web に指示するにはどうすればよいですか? resque-web にアクセスしたときの undefined method `process_route エラーを解決しようとしています

bundle を実行すると、

Using rack (1.4.1) 
Using sinatra (1.3.3) 
Using vegas (0.1.11) 
Using resque (1.23.0) 
Using rufus-scheduler (2.0.17) 
Using resque-scheduler (2.0.0) from https://github.com/bvandenbos/resque-scheduler.git (at master) 

resque-web が使用する必要がある宝石の正しいバージョンですが、実行するresque-web -vと取得されます

rack 1.1
sinatra 1.0
vegas 0.1.8

これは私に大きな頭痛を引き起こしています(これが原因であると仮定して)

undefined method `process_route' for #<Resque::Server:0xbc22f94>

ブラウザでresque webにアクセスしようとすると

私が走れば

bundle exec resque-web -v

私は得る

rack 1.1
sinatra 1.3.3
vegas 0.1.11

これはまだ間違ったバージョンのラックです。

次のルートでresqueサーバーをマウントしています

mount Resque::Server, :at => "/resque", :constraints => AdminRestriction

プロジェクト固有のジェムセットを管理するために、Ruby 1.9.3 と rvm を使用して Rails 3.2.9 アプリで nginx、unicorn セットアップを実行しています

これは運用サーバーのみの問題です。私の開発用 PC ではすべて問題ありません。

4

1 に答える 1

1

システムには resque-web gem がインストールされていますが、バンドルにはインストールされていないようです。これにより、実行したにもかかわらず、互換性のないバージョンが読み込まれますbundle exec

に resque-web を追加することで、これを解決できるはずですGemfile

gem "resque-web"

このbundle execコマンドは、最初にバイナリ/スクリプトのバンドルを調べ、バンドルされたバージョンを実行します。ただし、gem がバンドルに含まれていない場合は、システム上のバイナリ/バンドルにフォールバックします。

于 2013-01-03T16:05:08.667 に答える