Где вновь открыть класс в RoR

Я пытаюсь вновь открыться String класс в направляющих и добавляет набор больше методов для моего приложения для использования. Написание кода не является проблемой - мой вопрос скорее о том, куда этот код должен пойти.

Не имеет смысла мне вновь открыть класс в другом образцовом файле, потому что это действительно не имеет никакого отношения к любой из моделей конкретно. Я думал, возможно, где-нибудь в config или lib имел бы смысл, но я еще не являюсь особенно хорошо сведущим с RoR.

Подводя итоги, где самое логическое место было бы для определения изменяющего класс кода и является там какими-либо последствиями в зависимости от того, где/когда код загружается?

9
задан Jeriko 4 May 2010 в 14:38
поделиться

2 ответа

Наиболее логичным местом, вероятно, является файл в каталоге config / initializers . Любой файл * .rb , который вы вставляете сюда, будет автоматически выполняться при загрузке rails. Если хотите, вы можете поместить их в подпапку, чтобы можно было сделать что-то вроде config / initializers / extensions / *. Rb .

20
ответ дан 4 December 2019 в 08:00
поделиться

Я стараюсь свести количество этих обезьяньих патчей к минимуму, только если они явно соответствуют интересам моего кода.

В последнее время я предпочитаю хранить файлы в таких папках, как lib / monkey / string.rb, lib / monkey / hash.rb и т. Д. Затем мне нужны все файлы в папке lib / monkey в моем окружении .rb файл.

# Load all monkey-patches.
Dir["lib/monkey/*.rb"].each {|monkeyfile| require monkeyfile}

Благодаря этому весь мой код изменения класса изолирован в одном месте на случай возникновения проблемы. Мне также нравится несколько глупое название, потому что оно выделяет его как нечто, о чем нужно помнить. У кого-то может быть система получше, если так ... Я хотел бы услышать об этом!

7
ответ дан 4 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: