扩展扩展类的模块

时间:2011-03-08 01:13:10

标签: ruby-on-rails ruby module

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

class User
  extend UserStats
end

module UserStats

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

end

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

我在UserStats中试过“扩展当前”,但这似乎不起作用。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

为什么不只是extend UserStats::Current

答案 1 :(得分:1)

你的意思是这样吗?

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