有没有办法“展平”嵌套模块,以便在扩展另一个类或模块时可以使用所有方法?例如:
class User
extend UserStats
end
module UserStats
module Current
def active
where('status = "active"')
end
end
end
我希望能够扩展UserStats(或User),以便UserStats :: Current中的方法可用作User的类方法。
我在UserStats中试过“扩展当前”,但这似乎不起作用。有没有办法做到这一点?
答案 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