2011-10-04 61 views
1

完全無法理解這個問題,並希望RoR專家能夠提供幫助。Ruby on Rails:每當使用delayed_job gem時都會出現NameError

碰到這個奇怪的錯誤,如果我安裝delayed_job gem,我的網站(開發環境)就停止工作。所有控制器和方法將顯示一個NameError異常:

NameError in ProductsController#show 
cannot remove Object::ClassMethods 

我知道這是delayed_job的寶石,因爲如果我卸載它,或評論它,重新啓動服務器,錯誤消失。

我的Gemfile看起來如下:

source 'http://rubygems.org' 

gem 'rails', '3.0.10' 

# Bundle edge Rails instead: 

gem 'delayed_job', "2.1.4" 
gem 'sqlite3' 
gem 'faker', '0.3.1' 
gem 'webrat', '0.7.1' 
gem 'will_paginate', '3.0.pre2' 
gem "amazon_product", "3.0.0.pre.2" #http://code.papercavalier.com/amazon_product/ 
gem "curb" 
gem "authlogic" 
gem "omniauth", ">=0.2.6" 
gem "faraday"#, ">=0.7.4" 
gem "fb_graph" 
gem "twitter"#, "~> 1.7.1" 

我使用Ruby 1.8.7和Rails 3.0.10。

如果您有任何想法可能是什麼問題,請幫助:)

+1

你能否裝載你的服務器,並且只能根據請求得到這個錯誤?你可以運行一個控制檯嗎? –

回答

1

我想通了什麼罪魁禍首。在我的控制器中,我在頂部包含了「#Action ActionView :: Helpers :: TextHelper」,所以我可以使用truncate函數。包括那顯然導致一些命名衝突withint delayed_job。刪除包含解決了我的問題。