クラスメソッド外のものにはどのようにしてアクセスするのですか?私はclass_methods/singleton_methods
とinstance_methods
の違いを示しクラスメソッドの外部にある変数にアクセスする
module Thing
def self.do_something
do_something_else
end
def do_something_else
end
end
クラスメソッド外のものにはどのようにしてアクセスするのですか?私はclass_methods/singleton_methods
とinstance_methods
の違いを示しクラスメソッドの外部にある変数にアクセスする
module Thing
def self.do_something
do_something_else
end
def do_something_else
end
end
Here's a good reference do_something_else未定義のメソッドのようなエラーが発生します。
インスタンスがない場合、インスタンスメソッド(do_something_else
)にアクセスすることはできません。 これを解決するには、モジュールをクラスに含め、そのクラスのインスタンスを使用する必要があります。
module Thing
def self.do_something
Logic.new.do_something_else
end
def do_something_else
#perform the logic and actions here
end
end
class Logic
include Thing
end
あなたがが違ったと思うしたい場合、ここで私が提案したいものです。
module Thing
def self.do_something_else
# perform your logic and actions here
end
def do_something
# this is possible because do_something_else is defined on the module Thing
Thing.do_something_else
end
end
この
def self.do_something
Thing.new.do_something_else
end
do_somethingは、クラスメソッドであるとThing.do_somethingを呼び出して試してみてください..... do_something_elseはインスタンスメソッドであり、モデルのインスタンスが必要です。 my_thing = Thing.new my_thing.do_something_else – DennisCastro