我想弄清楚如何動態地創建方法紅寶石class_eval方法
class MyClass
def initialize(dynamic_methods)
@arr = Array.new(dynamic_methods)
@arr.each { |m|
self.class.class_eval do
def m(*value)
puts value
end
end
}
end
end
tmp = MyClass.new ['method1', 'method2', 'method3']
可惜,這只是創建方法M,但我需要的基礎上男,思想創造價值的方法呢?
謝謝,正是我需要的 – Bob 2010-01-10 23:28:30
你可能想要注意到你需要更加小心關於第二種方法,例如避免像https://github.com/rails/rails/blob/f1d8f2af72e21d41efd02488f1c2dcf829e17783/actionpack/lib/action_dispatch/routing/route_set.rb#L188-200這樣的代碼 – 2013-01-31 19:18:33