Расширение модуля, расширяющего класс - PullRequest
1 голос
/ 08 марта 2011

Есть ли способ "сгладить" вложенные модули, чтобы все их методы можно было использовать при расширении другого класса или модуля? Например:

class User
  extend UserStats
end

module UserStats

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

end

Я хочу иметь возможность расширять UserStats (или User) таким образом, чтобы методы в UserStats :: Current были доступны как методы класса для User.

Я пытался «расширить Current» в UserStats, но, похоже, это не работает. Есть ли способ сделать это?

Ответы [ 2 ]

5 голосов
/ 08 марта 2011

Почему не просто extend UserStats::Current?

1 голос
/ 08 марта 2011

Вы имеете в виду что-то подобное?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...