gpt4 book ai didi

ruby-on-rails - 包含模块,它是如何工作的?

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:25 25 4
gpt4 key购买 nike

举例:

module Feature
def self.included(klass)
puts "#{klass} has included #{self}!"
end
end

class Container
include Feature
end

你能解释一下模块如何操作 klass 吗?

找不到关于它的任何明确文档。

问候。

最佳答案

我认为include只是一种方法。这就是我在 irb 中所做的。

 > require 'pry'
> module A
> def self.included klass
> puts "included"
> end
> end
> class B
> binding.pry
> include A
> end

当它进入窥探时,我只看到了这个

pry(B)>  self.method(:include)
=> #<Method: Class(Module)#include>

所以我认为 include 是一个方法,并且猜测 include 方法在 include 完成时被调用。对不起,我对此没有任何证据。可能需要阅读 ruby​​ 源代码,因为我要求 source_location,但没有得到

 pry(B)> self.method(:include).source_location
=> nil

我觉得ActiveSupport::Concern是用来解决依赖问题的

关于ruby-on-rails - 包含模块,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com