2011-01-15 4 views
0

Я пишу простой рубиновый скрипт. Я хочу, чтобы сообщение справки отображалось при запуске скрипта.Ruby undefined helper method

def myClass 
    def help 
     puts "Help message" 
    end 

    (...other methods...) 

    help 
    # main loop 
    (...rest of script...) 
end 

Когда я запускаю его, я получаю «неопределенную локальную переменную или метод„помощь“для MyClass: Класс (NameError)». Почему Ruby не видит мой метод помощи? Рубин потерял его? Это уже определено! Я не могу определить его дальше!

ответ

1

вам нужно определить метод класса, то, что у вас есть, есть метод экземпляра.

class MyClass 
    def self.help 
    puts "help" 
    end 

    help 

end 

Для уточнения чуток

class MyClass 
    def self.my_class_method 
    puts 'class method' 
    end 

    def my_instance_method 
    puts 'instance method' 
    end 
end 

# class methods are called on teh class itself 
MyClass.my_class_method 

# instances methods are available on instances of the class 
obj = MyClass.new 
obj.my_instance_method 
+0

спасибо! Не могу поверить, что я не мог этого найти. –