从ruby中的Class方法调用实例方法

时间:2012-08-03 10:15:49

标签: ruby-on-rails ruby function-calls instance-methods class-method

这是从类方法调用Instance方法的正确方法吗?这里使用Name对象传递instance_var。我想从传递给class方法的instance_var对象中调用func1。

我写了这个:

Class Name
    def initialize
        @name
    end
    def func1(value)
        puts value
    end
    def self.func2(instance_var,val)
        instance_var.func1(val)
    end
end

1 个答案:

答案 0 :(得分:3)

你如何致电func2

您的代码有一个小错误。您写了Class而不是class。使用Class会出现语法错误。

此代码有效:

class Name
    def func1(value)
        puts value
    end
    def self.func2(instance_var,val)
        instance_var.func1(val)
    end
end

x = Name.new
Name.func2(x, 12)     #12

#or
Name.func2(Name.new, 12)  #12

你的

    def initialize
        @name
    end

将创建一个空变量@name。它永远不会得到价值。要分配您需要的值:

class Name
    def initialize (var)
        @name = var
    end
end

x = Name.new(:x)