こんにちは私はdefine_methodを使用していくつかのメソッドを定義するためにmixinを使用しようとしています。私は、だから私は、その後mixinでdefine_methodを使用するには?
class B
include A
end
B.new.C# => 'method c'
を行うことができます
module A
%w(a b c d).each do |w|
define_method(w) { "method #{w}" }
end
end
ような何かをしたいと思います。しかし、それは動作しません。
私は、(ほとんど)含まれている、instance_eval class_evalなどを試しました... nothign work。
できますか?
アップデートは、当初、私は投稿の例では、構文エラーがありましたが、それは本当の問題ではありませんでした。私はちょうどポストのための例を作りました、それは実際の例ではありませんでした(少し長すぎて投稿することはできません)。
私の問題は、私は私のリスト%w(a, b, c, b)
の代わりに、したがって、a,
ではなくa
の定義された%w(a b c b)
にカンマを使用しました。愚かな私、(しかし、スポットにハード)。あなたたちは、問題を解決する私を助けたために、それが動作することを見て
、感謝
よく、それは私のために働く(R 1.8.7) –
あなたのモジュールに 'end'がありません。どのように動作していないのですか?エラーメッセージはありますか? – matt
@mattは問題ではありませんでしたが更新を参照してください。ありがとう – mb14