Ruby:迭代常量

the*_*ror 14 ruby

我刚开始在Ruby中使用常量.

我有

module Constants
  C1 = "foo"
  C2 = "bar"
end
Run Code Online (Sandbox Code Playgroud)

我想要做

Constants.each do |c|
  #do something with each one
end
Run Code Online (Sandbox Code Playgroud)

但它说

undefined method ‘each’ for Constants::module
Run Code Online (Sandbox Code Playgroud)

....

是否有一种很好的迭代常量列表的方法?

fl0*_*00r 36

module Constants
  C1 = "foo"
  C2 = "bar"
end

Constants.constants.each do |c|
  puts "#{c}: #{Constants.const_get(c)}"
end
#=> "C1: foo"
#=> "C2: bar"
Run Code Online (Sandbox Code Playgroud)