6 ruby module ruby-on-rails class
我是Ruby on Rails的新手,我有一个带有"Set"模型的项目.这是在Rails 2.3.2中.现在问题是它根本找不到该模型类的任何方法.例如:find' for Set:Class" or "undefined method#" 未定义的方法错误".它似乎试图在Ruby"Set"类而不是我的模型类中找到这些方法.
如果我可以像Module :: Set那样编写我的Set模型类的完全限定名称,它可能会工作,但我不确定那是什么.(是的,我确实想要我的模型名称Set.在我的应用程序的上下文中,任何其他东西都会很尴尬).
有任何想法吗?
Sar*_*Mei 22
不要将其命名为Set.那种方式就是疯狂.
这笔交易是因为你试图重新定义已在全局上下文中定义的"Set"而定义类失败.
class Set < ActiveRecord::Base # You are attempting to define a constant 'Set'
# here, but you can't because it already exists
Run Code Online (Sandbox Code Playgroud)
您可以将您的类放在一个模块中,然后您将不会收到错误,因为您将在命名空间中定义Set.
module Custom
class Set < ActiveRecord::Base
end
end
Run Code Online (Sandbox Code Playgroud)
但是,每次要使用Set类时,都必须将其称为Custom :: Set.很多Rails魔法都不会起作用,因为它期望在全局上下文中定义类名.你将左右单独插入插件和宝石.
更容易给它一个不同的名字.
class CustomSet < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)
所有的魔法都有效,并且不需要monkeypatching.