Ответ 1
Вам может быть интересно Иегуда возьмет этот шаблон. Я думаю, что причина для некоторых из них исторична, поскольку они действительно не нужны, если вы вручную не делаете то, что Ruby будет делать автоматически через include
и extend
.
Я прочитал API для ActiveSupport:: Concern. Есть ClassMethods
и InstanceMethods
, мы можем поместить методы класса в ClassMethods
.
Но хост M
может использовать методы, определенные в M
, не так ли? Почему я не могу просто написать:
module M
def self.x
end
def y
end
end
а не:
module M
module ClassMethods
def x
end
end
module InstanceMethods
def y
end
end
end
Вам может быть интересно Иегуда возьмет этот шаблон. Я думаю, что причина для некоторых из них исторична, поскольку они действительно не нужны, если вы вручную не делаете то, что Ruby будет делать автоматически через include
и extend
.
Занимаются заботы. См. Приведенный ниже пример здесь.