【问题标题】:Ruby on Rails: Getting NameError whenever delayed_job gem is usedRuby on Rails:每当使用delayed_job gem 时都会出现NameError
【发布时间】:2011-11-30 08:46:50
【问题描述】:

完全被这个问题难住了,希望一些 RoR 专家可以提供帮助。

遇到这个奇怪的错误,如果我安装了delayed_job gem,我的网站(开发环境)就会停止工作。所有控制器和方法都会显示 NameError 异常:

NameError in ProductsController#show
cannot remove Object::ClassMethods

我知道这是delayed_job gem,因为如果我将其卸载或注释掉,重新启动服务器,错误就会消失。

我的 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。

如果您知道可能是什么问题,请帮助:)

【问题讨论】:

  • 您是否能够加载您的服务器并且只在请求时收到此错误?可以运行控制台吗?

标签: ruby-on-rails ruby-on-rails-3 rubygems delayed-job


【解决方案1】:

我知道罪魁祸首是什么。在我的控制器中,我在顶部包含了“#include ActionView::Helpers::TextHelper”,因此我可以使用截断函数。包括这显然会导致延迟工作中的一些命名冲突。删除包含解决了我的问题。

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2019-09-03
    • 2021-10-29
    • 1970-01-01
    • 2015-02-04
    • 2014-10-30
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多