Ruby从方法内部获取外部模块的常量

时间:2013-09-14 01:12:55

标签: ruby module constants

所以我在模块中有一个Ruby方法和一个常量:

module Foo
  URL = "http://foo.bar"

  def self.fetch
    # how can I get Foo::URL from in here?
  end
end

如何从Foo::URL内获取Foo.fetch

2 个答案:

答案 0 :(得分:2)

由于您在模块中,因此无需指定模块。因此,

module Foo
  URL = "http://foo.bar"

  def self.fetch
     URL
  end
end

这样,

Foo.fetch 
# => "http://foo.bar"

答案 1 :(得分:1)

您应该可以通过Foo :: URL访问。这对我有用:

module Foo
  URL = "BAR"
  def self.baz
    Foo::URL
  end
end

2.0.0-p195 :025 > Foo.baz
=> "BAR"

您还应该可以从模块内部访问裸URL。当您尝试访问Foo::URL时,您会收到什么错误?