2017-03-10 16 views
0
module Add 
def addition 
    sum=1+2 
    puts sum 
end 
a=Add.addition 

誰かが私が行方不明です、なぜ私はこのエラー - 追加のために>NoMethodError

未定義のメソッド `加えて」取得しています何を教えてもらえます:モジュール(NoMethodError)したい場合は

答えて

1

クラスメソッドとインスタンスメソッドが混乱しています。あなたの定義:あなたはモジュールAdd上のメソッドを呼び出したのに対し、

module Add 
    def addition 
    ... 
    end 
end 

Addのインスタンスでメソッドを定義します。クラス/モジュールメソッドを定義する場合は、次のように定義する必要があります。

module Add 
    def self.addition 
    ... 
    end 
end 
0

def self.addition 
    # ... 
end 

をそれとも、常にこの使用して手直しすることができます:

を、直接それを呼び出す直接アクセスメソッドとして定義することができるようにします
module Add 
    # ...(methods)... 

    extend self 
end 

ここで、自動的にすべてのmixinタイプのメソッドが直接アクセス可能であると宣伝されます。

また、このように、より選択的にそれらをタグ付けすることができます。

module Add 
    def addition 
    # ... 
    end 
    module_method :addition 
end 

方法はAdd.additionとして、またはいくつかの他のモジュールまたはクラスがinclude Addを呼び出す場合のいずれか利用可能であること。