2011-07-15 7 views
14

Rubyで定数を使い始めました。Ruby:定数を反復する

私は

Constants.each do |c| 
    #do something with each one 
end 

をしたいと思ったが、それは

undefined method ‘each’ for Constants::module 

言う....

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

を持っているが反復の良い方法はあります定数のリストを通して?

+0

この質問のために有用なリンク:http://stackoverflow.com/questions/2309255/how-do-i-get-constants-defined-by-rubys-module-class-via-reflection。 –

答えて

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

Constants.constants.each do |c| 
    puts "#{c}: #{Constants.const_get(c)}" 
end 
#=> "C1: foo" 
#=> "C2: bar" 
+0

Typo定数=>定数 –

+0

@Ray Toal、yeap、thanksありがとう – fl00r