Я хочу использовать знакомых помощников рельсов, но с немного измененными функциями. То, как я это вижу, хочу, чтобы я мог сделать что-то вроде:
module AwesomeHelper
#... create alias of stylesheet_link_tag to old_stylesheet_link_tag
def stylesheet_link_tag(*args)
if @be_awesome
awesome_stylesheet_link_tag *args
else
old_stylesheet_link_tag *args
end
end
end
Как я вижу это, у меня есть три варианта:
- Патч обезьяны:. Повторное открытие вспомогательного модуля рельсов. Если команда rails когда-либо изменяет имя своего вспомогательного модуля, мой код становится источником хрупкости. Не непреодолимый, но не идеальный.
- Использовать разные имена методов: Попытка придерживаться общего интерфейса rails может быть моим падением. Мои изменения могут стать источником путаницы для других разработчиков.
- Способы отсоединения (новые): Не уверен, будет ли это работать, или будет ли он иметь те же недостатки, что и 1. Будет ли это исследовать, но это может быть хорошей отправной точкой.
Итак, вопрос здесь в том, что я придерживаюсь одного из этих субоптимальных решений или есть другой способ, который я не рассматривал? Если я перейду на вариант 3, есть ли способ сделать это, не обращаясь напрямую к вспомогательному модулю rails?
(Примечание: я удалил контекст, так как он ничего не добавляет к вопросу.)