Un module dans mon petit bijou est inclus dans une classe dans une autre pierre précieuse, qui se prolonge par une classe personnalisée dans une application Rails:Comment inclure un module dans une classe
Mon petit bijou:
module MyGem
def my_method
end
end
AnotherGem.send :include, MyGem
Un autre joyau:
class AnotherGem
end
classe dans l'application Rails:
class ClassInRailsApp < AnotherGem
end
L'exécution de ce conduit au comportement suivant:
$ rails c
Loading development environment (Rails 5.1.4)
irb(main):004:0> MyGem.method_defined? :my_method
=> true
irb(main):005:0> AnotherGem.method_defined? :my_method
=> true
irb(main):006:0> ClassInRailsApp.method_defined? :my_method
NoMethodError: undefined method `my_method' for ClassInRailsApp:Class
Comment puis-je assurer que mon module est inclus avant la classe est étendue?
EDIT:
J'ai essayé d'inclure directement dans MyGem
ClassInRailsApp
et la méthode d'instance spécifiée est toujours pas disponible. Est-ce que la question pourrait être liée à cela?
Votre exemple de code produit actuellement 'true', donc je ne suis pas sûr de savoir quel est votre problème, précisément. Cela devrait fonctionner, et cela fonctionne pour moi. – tadman