5

私は2つのファイルを持っています.1つは module ですToMix:

module ToMix
    @module_var = "modulevar"
    def self.mix_function
        puts "mix_function SELF: #{@module_var}"
    end
    def mix_function
        puts "mix_function: #{@module_var}"
    end     
    class MixClass
        attr_accessor :mixclassvar
        def initialize(value)
            @mixclassvar = value
        end
    end
end

TestInclude他のファイルのクラスにミックスインしたい:

class TestInclude
    require "ToMixFile"
    include ToMix
end

@module_varインスタンス変数とメソッドself.mix_functionmix_function定義されていない理由を誰かが説明できますか? そして、それらをどのように定義しますか?

t2 = TestInclude.new()
t2.mix_function                           # => error undefined (exected call to mix_function)
t2.module_var = "test set module_var"     # => error undefined
TestInclude.mix_function                  # => error undefined (expected call to self.mix_function)
TestInclude.method_defined? :mix_function # => false
4

1 に答える 1