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。