繁体   English   中英

扩展扩展类的模块

[英]Extending a module that extends a class

有没有一种方法可以“展平”嵌套模块,以便在扩展另一个类或模块时可以使用它们的所有方法? 例如:

class User
  extend UserStats
end

module UserStats

  module Current
    def active
      where('status = "active"')
    end
  end

end

我希望能够扩展UserStats(或User),以便UserStats :: Current中的方法可用作User的类方法。

我在UserStats中尝试了“ extended Current”,但这似乎不起作用。 有什么办法吗?

为什么不仅仅extend UserStats::Current呢?

你的意思是这样吗?

module UserStats

  def self.extended(klass)
    klass.send(:extend, Current)
  end

  module Current
    def active
      puts "test"
    end
  end

end

class User
  extend ::UserStats
end

puts User.active

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM