预期文件定义模块,但它被定义...为什么ruby不同意?

时间:2012-01-11 20:17:51

标签: ruby-on-rails ruby

第一行文本是LoadError 图像中的第二行文本是文件shared.rb驻留在rails项目中的文件夹。 而sytax有色的东西是shared.rb

的顶部

enter image description here

如你所见,shared.rb定义了NamedScope :: Shared,那么为什么RoR说它不是?

使用rails 2.3.8

更新:

尝试了这个:

module NamedScope
    module Shared

在同一个文件中,shared.rb位于{AppRoot}/lib/named_scope/ 这也没用(同样的错误)

更新2:此错误是由于我的模型类没有定义常量。

我刚刚

CONSTANT_NAME

而不是

CONSTANT_NAME = value

这令人心烦意乱,因为我觉得自己撒谎了o.o

2 个答案:

答案 0 :(得分:0)

您之前是否定义过NamedScope模块?您可能需要这样做:

module NamedScope
  module Shared
    # do your thing here
  end
end

答案 1 :(得分:0)

我需要看到更多要遵循的代码。

当代码使用在其他地方定义的类并且魔术名称解析不够强时,我遇到了这个问题。就像我有一个扩展Loan类的XyzLoan类但我不需要它或之前使用它。它不应该失败,但确实如此。

如果是这种情况,您可以通过删除代码的一半来对问题进行二进制搜索,然后再试一次,直到找到导致问题的原因为止。