![](https://dhampik.ru/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--283588a08f975af74b52218cfe99a7aca719512e/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBPZ2h3Ym1jNkVuSmxjMmw2WlY5MGIxOW1hWFJiQjJrQmdHa0JnQT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--97dc6d68b366554a9907e9783c9a0c17c15569ec/rails-admin-scaffold.png)
Как правило каждое приложение на Ruby on Rails имеет какой-то свой административный интерфейс, если только это не совсем простенький полу-статичный сайт визитка (наверное в таком случае больше подойдут Sinatra или Padrino?). Известный человек в мире Rails — Райан Бейтс в одном из своих первых рейлскастов предлагает объединять в коде административный и публичный раздел. Думаю имеет место и другой подход. Вот почему:
- админка, как правило, содержит больше действий в контроллерах, более сложный вывод данных с обилием различных полей;
- публичная часть обычно ограничивается гораздо более простым выводом на страницу;
- объединение кодовой базы административной и публичной части приводит к увеличению сложности кода и к наличию множества проверок на принадлежность пользователя к группе администраторов.
Таким образом, здравый смысл подсказывает, что админку лучше структурно отделить от публичной части сайта. Код публичной части сайта будет проще и чище, а код админки будет выполнять исключительно ту функцию, для которой он предназначен. Конечно же есть гемы activeadmin, rails_admin и другие, которые предлагают полноценную админку, однако порой удобнее реализовать свой простенький вариант админки, а не кастомизировать сложный механизм под себя.
Хочу рассказать вам о том, как же максимально просто провести такое разделение на примере тестового приложения.