Ruby - كيفية إزالة جهاز على كائن
-
21-09-2019 - |
سؤال
إعطاء فصل مثل هذا:
class B
class << self
attr_accessor :var
end
end
لنفترض أنه لا يمكنني تعديل رمز المصدر الأصلي للفئة B. كيف يمكنني إجراء إزالة Setter على متغير الفئة VAR؟ لقد حاولت استخدام شيء مثل B.Send ("unset_method" ، "var =") ، لكن هذا لا يعمل (ولا يزيل remove_method ، أو الكتابة فوق هذه الطريقة بطريقة var = لا تفعل أي شيء). أيه أفكار؟
المحلول
class <<B ; remove_method :var= ; end
نصائح أخرى
محاولة:
class B
class << self
undef var=
end
end
قد ترغب في استخدام remove_method بدلاً من ذلك:
class B
class << self
remove_method :var=
end
end
لرؤية الاختلافات ، انتقل إلى:http://www.nach-vorne.de/2008/2/28/undef_method-remove_method/
لا تنتمي إلى StackOverflow