переопределить метод экземпляра в Ruby с помощью модуля вместо наследования - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь реализовать метод, который переопределяет метод ActiveRecord (find), но затем также может получить доступ к исходному методу find.Я хотел бы сделать это без наследования, используя модуль.Итак, я ищу что-то вроде этого:

module Override
    def find args
        if some_condition
            do_something
        else
            super args # i realize this is not a "super" but this is the functionality i seek
        end
...

и затем в моем унаследованном ActiveRecord классе

include Override

... # and then business as usual
MyClass.find(id)

Возможно ли это?Намерение состоит в том, чтобы иметь простой плагин, который улучшит метод поиска ActiveRecord (с кешем и прочим), но мотивация - не мой вопрос, я хочу знать, поддерживает ли Ruby такую ​​идею.Преимущество этого состоит в том, что мне не нужно было бы создавать подкласс для размещения между Rails и моим классом для каждого отдельного класса, который я хочу улучшить с помощью пользовательского поведения поиска.

Спасибо за любую помощь, Кевин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...