私のプロジェクトで同じ戻り値(モジュール名の接頭辞)を持つ同じメソッド名を使用しているサンプルモジュール(n個の数値)以下ruby-動的にモジュールを定義する
module Example1
def self.ex_method
'example1_with_'
end
end
module Example2
def self.ex_method
'example2_with_'
end
end
私は#define_methodのようなメタプログラミングの方法でこれを達成しようとしました。しかし、それは私のために働いていない。それを行う方法はありますか?
array.each do |name|
Object.class_eval <<TES
module #{name}
def self.ex_method
"#{name.downcase}_with_"
end
end
TES
end
エラースナップ:あなたが最後の行で見ることができたが、それが完了していないことを言います。
"動作しない" 良い定義ではありません。何が問題ですか?どのようなエラーメッセージが表示されますか? –
エラーはありません。私が 'irb'で試してみると、コマンドは終了してもメソッドは閉じられません。 「なぜ良い定義ではないのですか? –
なぜそれは良い定義ではありませんか? stacktraceなどのようなエラーメッセージについては何も述べていないからです。 できるだけ多くの(関連する)詳細を提供し、問題を容易に理解できるようにします。 おそらく、あなたはそのようなものを実装したいのですか? –