2013-08-28 7 views
0

Я переписываю одно старое приложение - Rails 1.2.6 :)) - полностью в Rails 4 ... так что вы можете себе представить перегрузку информации.Загрузка пользовательских классов в Rails 4

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

У меня есть пользовательский класс с пользовательской функцией преобразования текста (с использованием Redcloth, автолинкера, Sanitize и т. Д.), Назовем его Textilize класс. Он используется как в моделях, так и в контроллерах, поэтому я считаю, что лучшим решением было бы создать из него драгоценный камень. Я хочу позже атаковать создание драгоценного камня, потому что это простой класс с одним файлом.

Так что на данный момент я просто добавил textilize.rb файл в каталог/lib и добавил config.autoload_paths += %W(#{config.root}/lib).

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

Является ли это хорошей практикой в ​​Rails 4? Это поточно-безопасный? Если нет, есть ли способ реорганизовать его, не создавая теперь полноценный камень?

Спасибо!

ответ

1

«Это хорошая практика?» Я думаю, что это.

«Это поточно-безопасный?» Я не знаю

Любой другой способ? Я буду использовать ваше решение, если lib пересекает модель и контроллер, и это просто. Если он будет довольно сложным, я создам плагин. Если он является сложным и может быть расширен, чтобы быть полезным в других приложениях, я создам драгоценный камень.

+0

плагины больше не поддерживаются в рельсах 4 –

+0

@FrederickCheung, спасибо за информацию. Я еще не работал над проектом Rails 4. Просто проверил и проверил, что, хотя «libs/plugins» все еще можно использовать. –

+0

А - Я думал, вы имеете в виду настоящий плагин rails –

Смежные вопросы