То, что module A
должно повышать ArgumentError
, если у него также нет extends ActiveSupport::Concern
наверху. Без ActiveSupport::Concern
вы бы вызывали метод экземпляра Module#included
здесь:
included do
...
end
но для этого нужен аргумент.
Если вы скажете это:
module A
extend ActiveSupport::Concern
included do
def self.some_func
end
end
end
тогда вы получите included
, который вы пытаетесь использовать, и module A
, который вы ожидаете.
Кроме того, module B
не include A
, поэтому ему некуда взять some_func
, поэтому:
module B
some_func
end
даст вам NoMethodError
. Если вы включите A
:
module B
include A
some_func
end
тогда будет работать.