2011-01-15 11 views
0

私は単純なルビースクリプトを書いています。スクリプトの実行時にヘルプメッセージが表示されるようにしたい。Rubyの定義されていないヘルパーメソッド

def myClass 
    def help 
     puts "Help message" 
    end 

    (...other methods...) 

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

私はそれを実行すると、私は「MyClassのための未定義のローカル変数やメソッド 『助けを』:クラス(NameError)」を得ます。なぜルビーは私の助けの方法を見ないのですか?ルビーはそれを失ったのですか?既に定義されています!私はそれ以上定義することはできません!

答えて

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

はありがとうございビットを明確にします!私はそれを見つけることができないと信じられない。 –

関連する問題