找不到ruby函数定义

时间:2013-12-20 12:31:05

标签: ruby

所以我是一名java程序员,我正试图在ruby上做得更好,但我没有基本的原则而且没有得到任何结果。这是我的班级

    class Main
      a = Car.new
      a.instance_variable_set("@make", 'Hyundai')

      if a.make == 'Hyundai'
        self.get_hyundai_vehicle_information(a)
      end

      def get_hyundai_vehicle_information(a)
        go_to_hyundai_usa_and_select_vehicle
      end
    end

但我一直收到错误

undefined method 'get_hyundai_vehicle_information' for Main:Class

1 个答案:

答案 0 :(得分:2)

您在类主体中运行的代码是在Main类的单例类的上下文中执行的。这基本上意味着,它在类创建期间在类范围内运行一次,但不在任何类实例中运行。

现在,您定义的方法仅适用于实例(即它是实例方法)。您可以通过将self.添加到方法名称来定义类方法。然后,您需要在调用之前定义方法。

请记住,在Ruby中,每一段代码都按顺序进行评估。这包括类和方法定义。在定义代码的代码运行之前,您无法调用方法。