2

祖先を除いて、特定のクラスに含まれているモジュールを見つけたいと思います。例えば:

module M; end
module N; end

class A; include M; end
class B < A; include N; end

p B.included_modules

#=> [N, M, Kernel]
# I want only N

B.included_modules[0]含まれているモジュールの数がわからないため、使用できませんB

4

1 に答える 1

3

AがBのスーパークラスであることがわかっている場合は、

p B.included_modules - A.included_modulesあなたが他に探しているものをあなたに与えるべきです

p B.included_modules - B.superclass.included_modules

module M; end
module N; end
module O; end

class A; include M; end
class B < A; include N; include O; end

p B.included_modules - A.included_modules
#=> [O, N]
于 2013-01-14T12:32:02.987 に答える