Rails找不到与Ruby类同名的模型

我是Ruby on Rails的新手,我有一个带有“Set”模型的项目。 这是在Rails 2.3.2中。 现在问题是它根本找不到该模型类的任何方法。 例如:“ find' for Set:Class" or "undefined method未定义方法find' for Set:Class" or "undefined method #的find' for Set:Class" or "undefined method错误”。 它似乎试图在Ruby“Set”类而不是我的模型类中找到这些方法。

如果我可以像Module :: Set那样编写我的Set模型类的完全限定名称,它可能会工作,但我不确定那是什么。 (是的,我确实想要我的模型名称Set。在我的应用程序的上下文中,任何其他东西都会很尴尬)。

有任何想法吗?

不要将它命名为Set。 那种方式就是疯狂。

这笔交易是因为你试图重新定义已在全局上下文中定义的“Set”而定义类失败。

 class Set < ActiveRecord::Base # You are attempting to define a constant 'Set' # here, but you can't because it already exists 

您可以将您的类放在一个模块中,然后您将不会收到错误,因为您将在命名空间中定义Set。

 module Custom class Set < ActiveRecord::Base end end 

但是,每次要使用Set类时,都必须将其称为Custom :: Set。 很多Rails魔法都不会起作用,因为它期望在全局上下文中定义类名。 你将左右单独插入插件和gem。

更容易给它一个不同的名字。

 class CustomSet < ActiveRecord::Base 

所有的魔法都有效,而且不需要monkeypatching。