Namespaced常量导致错误:NameError:未初始化的常量

时间:2015-01-13 14:54:02

标签: ruby-on-rails

我有以下模块/类结构:

module A
  module B
    class Foo; end
    class Bar
      MY_CONST = 42
    end
  end
end

我在我的RSpec测试中放了一个binding.pry。如果我访问

A::B::Bar::MY_CONST

我收到错误:NameError:unitialized constant A :: B :: Bar

如果我那么做     A :: B ::美孚 我得到了对象A :: B :: Foo

然后,如果我这样做     A :: B ::酒吧:: MY_CONST 第二次,我得到了42。

如果我在Class Foo中嵌入Class Bar,并使用     A :: B ::富::酒吧:: MY_CONST 我直接得到42。但是,我不想把Bar嵌入Foo。

这里发生了什么?

RSpec代码位于私有函数中,如下所示:

    A::B::Bar::MY_CONST

1 个答案:

答案 0 :(得分:0)

事实证明,现在的要求是将Bar嵌入Foo中。这样做,我正在使用:

A::B::Foo::Bar::MY_CONST 

成功。