@pup_pupets

Какая хорошая практика создания «своих» функций в Rails?

Привет

Я тут мигрирую с java на rails и не понимаю организационный вопрос. Ну вот раньше, в java, если мне нужна была какая-то выделенная логика, то создавался package и там всё хранилось. Под "всё" понимаю бины, какие-то utils, может отдельные классы для работы с другими объектами других классов.

В rails же (возможно только поначалу) сложилось впечатление, что всё жестко завяно на MVC, где ты описываешь какую-то логику либо в модели, либо в контроллере. Но где хранить свои классы и всё то, что обычно лежит в package? Какая в этом случае best practice?

Заранее спасибо знающим.
  • Вопрос задан
  • 2731 просмотр
Решения вопроса 1
@vsuhachev
Помимо упомянутых коллегами каталога lib и своего гема можно выделять классы в подкаталоги в app. В отличии от lib все подкаталоги app находятся в автозагрузке по умолчанию, то есть не нужно писать require вручную. Ну и по смыслу - в app размещают то, что относится непосредственно к текущему приложению, а в lib - или код от "сторонних производителей", либо свой более независимый от текущего приложения код с прицелом на выделение и использование его в других проектах.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Prognosticator
@Prognosticator
TODO: Здесь будут ворованные умные мысли, типа мои
Выносите свои классы в отдельную папку в /lib и подключайте папку в автозагрузку
Или в gem, если код представляет собой некое расширение фреймворка.
Ответ написан
amerov
@amerov
Web Developer
архитектура в рельсах из коробки примитивная.
рекомендую посмотреть
https://github.com/drapergem/draper
https://github.com/apotonick/cells
https://github.com/collectiveidea/interactor
а еще посмотрите как в руби устроены модули.
еще бывает что, проект разбивают на несколько приложений
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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