À 1. Un module est créé / ouvert en disant simplement:
module MyModule
def first_module_method
end
end
Vers 2. Le lib
dossier. Si vous souhaitez organiser vos modules dans le lib
dossier, vous pouvez les placer eux-mêmes dans des modules. Par exemple, si vous vouliez un sous-dossier, super_modules
vos modules seraient définis comme suit:
module SuperModules
module MyModule
def first_module_method
end
end
end
Vers 3./5. Lorsque vous incluez le module dans une classe, vous pouvez simplement appeler les méthodes des modules comme si elles étaient définies dans la classe:
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
Pour 4. Tout d'abord, assurez-vous que votre module est vraiment nécessaire dans chaque classe de votre application. Si ce n'est pas le cas, il est logique de ne l'inclure que là où c'est nécessaire pour ne pas gonfler les classes qui n'en ont pas besoin de toute façon. Si vous voulez vraiment le module partout, incluez la hiérarchie des classes de vos classes dans l'application. Voulez-vous le module dans tous les modèles? Vous pouvez ouvrir ActiveRecord :: Base et y ajouter votre module.