12

既存のクラスに一致する文字列を構築できると仮定すると、どのように呼び出すのですか?

たとえば、いくつかのクラスがあります。

  • MyClass1
  • MyClass2
  • MyClass3

そして、名前に一致する文字列を作成して、それぞれを動的に呼び出したいと考えています。それらがすべてメソッド「methods」を持っている場合、どうすれば次のようになりますか?:

(1..3).each do |n|
  ("MyClass"+n).methods
end
4

2 に答える 2

19

constantize法案に適合します。詳細については、こちらをご覧ください。あなたの場合、それは次のようになります:

(1..3).each do |n|
  "MyClass#{n}".constantize.methods
end
于 2012-07-15T07:46:27.230 に答える
-3

あなたもすることができます-

(1..3).each {|n| eval "MyClass#{n}.methods"}
于 2012-07-15T08:11:49.750 に答える