How to dynamically define a class method which will refer to a local variable outside?

前端 未结 3 1196
有刺的猬
有刺的猬 2021-02-02 09:27
class C
end

var = \"I am a local var outside\"

C.class_eval do
   def self.a_class_method
     puts var 
   end
end

I know, this is not correct, beca

3条回答
  •  傲寒
    傲寒 (楼主)
    2021-02-02 10:05

    C.instance_eval do
      def class_method
        "This is class method"
      end
    end
    

    instance_eval: defines singleton methods on the object (which results in class methods when it's called on class object).

    class_eval: defines regular instance methods

提交回复
热议问题