2012-04-22 2 views
1

私はこのようなモジュールを持っていると仮定:なぜモジュールから割り当て方法をミックスインすることができない

module MyAssigments 
    def dummy_assignment=(value) 
    puts "it's not assigned #{value}" 
    end 
end 

このようにそれを含むクラス:次いで

class MyClass 
    include MyAssigments 
    def x=(value) 
    dummy_assignment=(value) 
    end 
end 

o = MyClass.new 
o.x="anything" 

画面に何も印刷されないのはなぜですか?

答えて

3

Rubyはここ癖をペアリング構文を/持っている:selfためassginemntメソッドを使用するように明示的に修飾することがあります。

def x=(value) 
    self.dummy_assignment=value 
    end 

self.一部せず、ローカルに割り当てするルビーが想定されます変数。

+0

これは機能しますが、私の質問には答えません。なぜクラス内からモジュールメソッドを参照できないのですか? – user725408

+0

もちろんです。私の悪い。回答が修正されました。 –

関連する問題