С помощью хука
def self.included(base)
end
можно получить доступ к включающему классу из хука included
. Насколько я знаю Модули. Но я не передаю base
в качестве параметра на крючок? Не означает ли это, что он также должен быть доступен внутри целого Module
в качестве некоторой переменной-модуля и существовать в модуле?
Очевидно, что он не определен как переменная класса (Module.class_variables
), переменная экземпляра (Module.instance_variables
) или константа как выводимая из факта, что это строчные буквы.
Что такое аргумент base
, тогда? Разве это только «вызвано в существование», когда вы передаете его в качестве аргумента хуку Module?
@ spickermann
2.6.0 :001 > module ConcernModule
2.6.0 :002?> extend ActiveSupport::Concern
2.6.0 :003?> included(base) do
2.6.0 :004 > puts "base is #{base}"
2.6.0 :005?> end
2.6.0 :006?> end
Traceback (most recent call last):
2: from (irb):1
1: from (irb):3:in `<module:ConcernModule>'
NameError (undefined local variable or method `base' for ConcernModule:Module)
Спасибо