Кому 1. Модуль создается / открывается простым сообщением:
module MyModule
def first_module_method
end
end
К 2. lib
Папка. Если вы хотите организовать свои модули в lib
папке, вы можете поместить их в сами модули. Например, если вам нужна подпапка, super_modules
ваши модули будут определены следующим образом:
module SuperModules
module MyModule
def first_module_method
end
end
end
К 3./5. При включении модуля в класс вы можете просто вызвать методы модуля, как если бы они были определены внутри класса:
class MyClass
include MyModule
def some_method
first_module_method
end
end
Для 4. Во-первых, убедитесь, что ваш модуль действительно нужен в каждом классе вашего приложения. Если это не так, имеет смысл включать его только там, где это необходимо, чтобы в любом случае не раздувать классы, которым он не нужен. Если вам действительно нужен модуль везде, включите в него иерархию классов ваших классов в приложении. Вы хотите, чтобы модуль был во всех моделях? Вы можете открыть ActiveRecord :: Base и добавить туда свой модуль.