既存のクラスに一致する文字列を構築できると仮定すると、どのように呼び出すのですか?
たとえば、いくつかのクラスがあります。
- MyClass1
- MyClass2
- MyClass3
そして、名前に一致する文字列を作成して、それぞれを動的に呼び出したいと考えています。それらがすべてメソッド「methods」を持っている場合、どうすれば次のようになりますか?:
(1..3).each do |n|
("MyClass"+n).methods
end
既存のクラスに一致する文字列を構築できると仮定すると、どのように呼び出すのですか?
たとえば、いくつかのクラスがあります。
そして、名前に一致する文字列を作成して、それぞれを動的に呼び出したいと考えています。それらがすべてメソッド「methods」を持っている場合、どうすれば次のようになりますか?:
(1..3).each do |n|
("MyClass"+n).methods
end
constantize
法案に適合します。詳細については、こちらをご覧ください。あなたの場合、それは次のようになります:
(1..3).each do |n|
"MyClass#{n}".constantize.methods
end
あなたもすることができます-
(1..3).each {|n| eval "MyClass#{n}.methods"}