2011-08-18 43 views
0

我有一个名为“测试”的模型(我评论了该模型的所有内容,因此只剩下class Testend用于调试目的),每次我尝试在轨道控制台中实例化它我收到一个错误,说明“新”方法不存在Test:Module。实例化我的其他模型时,不会发生此错误,并且我认为它与轨道控制台正在加载Test :: Unit或类似的事实有关(在预感上,我运行了Test.constants并且控制台返回了[:Unit] ,所以我很确定这是问题)。无论如何,毫无疑问,一些名为Test的模块正在由rails控制台运行,我不希望发生这种情况。我如何避免这种情况?对我来说,将我的课程名称改为不同的价值会非常不方便,所以如果有什么办法可以解决这个问题,那将很棒〜!停止轨道控制台从加载测试::单位

回答

1

我只是用一个简单的解决方法来调用我的类“考试”而不是测试,但我想知道如何正确解决此问题,而无需解决该问题。

1

您可以添加一个模块,并在其中包含测试类以避免该问题。然后你将需要像module :: class一样处理你的类。

+0

我觉得这种方法有点混乱 - 我宁愿有一段代码运行,“取消定义”Rail控制台似乎正在读取的Test类。另外,如果我确实使用了这种封装模块方法,对我的其他代码(数据库访问等)会有什么影响? – Kvass

+0

此外,我一直在网上寻找,显然命名空间模型是一个绝对麻烦/混乱的Rails - http://stackoverflow.com/questions/601768/namespaced-models-in-rails-whats-the-state-of -工会。所以我真的需要rails控制台来加载Test :: Unit。 – Kvass

+1

这不是混乱,这正是模块的用途。您只是试图将方法添加到已定义的类中。您要么在已经预定义的课程之后给您的课程命名,要么将您的课程放入模块中。或者像你说的那样删除一起测试,但这就像说你想删除放入,因为红宝石放入是干扰你的放入。 –