2012-12-12 25 views
0

我如何告訴resque-web使用機架,sinatra和拉斯維加斯的正確寶石版本? 我想,當我訪問resque的Webrails resque-web gem版本與捆綁的gem版本不同步,如何告訴resque-web使用正確的gem版本?

如果我運行捆綁我得到

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) 

這是寶石的正確版本來解決未定義的方法`process_route錯誤resque的Web應使用但是當我運行resque-web -v我得到

rack 1.1 
sinatra 1.0 
vegas 0.1.8 

這是造成我一個巨大的頭痛(假設這是原因)

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

,當我嘗試訪問網絡resque在我的瀏覽器

如果我運行

bundle exec resque-web -v 

我得到

rack 1.1 
sinatra 1.3.3 
vegas 0.1.11 

仍然是機架式的版本錯誤。

我安裝resque服務器具有以下路徑

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

我運行Nginx上,麒麟安裝在導軌和紅寶石1.9.3和RVM管理項目的具體gemsets

3.2.9應用

這是一個生產服務器唯一的問題,一切都是我的開發PC

回答

1

細看起來你已經安裝在系統中resque的Web寶石,但不是在你的包。這會導致它加載不兼容的版本,即使您運行的是bundle exec

您應該能夠通過添加resque的Web您Gemfile來解決此問題:

gem "resque-web" 

bundle exec命令將看看捆綁的二進制/腳本第一,並執行捆綁版本。但是,如果寶石不在捆綁中,它將回退到系統上的二進制/捆綁包中。