Tôi đang cố gắng để tìm ra cách để tự động tạo ra các phương phápcủa Ruby phương pháp 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']
Đáng tiếc là điều này chỉ tạo ra các phương pháp m nhưng tôi cần phải tạo ra các phương pháp dựa trên giá trị của m, ý tưởng?
Cảm ơn, chính xác những gì tôi cần" – Bob
Bạn có thể muốn lưu ý rằng bạn cần phải cẩn thận hơn về phương pháp thứ hai, ví dụ: tránh mã như https://github.com/rails/rails/blob/f1d8f2af72e21d41efd02488f1c2dcf829e17783/actionpack/lib/action_dispatch/routing/route_set.rb#L188-200 –