mam coś takiego:Korzystanie z metody define_method w module, który zostanie dołączony do klasy?
module MyModule
define_method(:foo){ puts "yeah!" }
end
class User
include MyModule
end
Ale to nie działa prawidłowo ... Oni nie są zdefiniowane. Muszę również korzystać z modułu, ponieważ chcę odróżnić metody z tego miejsca od zwykłych metod użytkownika. Co mi się podoba:
MyModule.instance_methods
Proszę o pomoc .. czego mi brakuje? Próbowałem również:
module MyModule
(class << self; self; end).class_eval do
define_method(:foo){ puts "yeah!" }
end
end
który również nie działa:/
wyjaśnienie ... Chciałbym użyć:
User.first.foo
nie
MyModule.foo
Wygląda dobrze: 'moduł MyModule; end' '=> zero' 'klasa Użytkownik; obejmują MyModule; end' '=> User' ' moduł MyModule; define_method (: foo) {puts "yeah!" }; end' '=> #' ' User.new.foo' ' tak ' ' => zerowe 'MyModule.instance_methods' ' => [” foo "]' –