2011-10-04 59 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。删除包含解决了我的问题。