Here's a good reference, который показывает разницу между class_methods/singleton_methods
и instance_methods
.
В вашем случае вы не можете получить доступ к экземпляру метода (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
do_something является метод класса и вызывает Thing.do_something ..... do_something_else - это метод экземпляра, и вам нужен экземпляр модели. my_thing = Thing.new my_thing.do_something_else – DennisCastro