NameError引用类中的类

时间:2011-12-22 22:31:15

标签: ruby-on-rails ruby ruby-on-rails-3.1

我有以下代码:

class MyClass
    def method
        foo = MyClass.all
    end
end

会导致此错误:

NameError (uninitialized constant MyClass::MyClass)

如果我将其更改为self.all,它可以正常工作,但是当我部署到Heroku时,现有代码工作正常。它只在我的本地系统上打破了。

这是使用Rails 3.1.1应用程序和Ruby 1.9.2

任何想法是什么?

1 个答案:

答案 0 :(得分:1)

你不应该这样做。假设all是一个类方法而不是实例方法,请执行

class MyClass
    def method
        foo = self.class.all
    end
end

但是,我认为造成问题的原因是在生产中,类被缓存。在开发过程中,每次请求都会重新加载。