В качестве авторизации в создаваемом нами интернет магазине будет использоватся гем Devise - https://github.com/heartcombo/devise. Есть миллион разных уроков по этому гему (вот здесь https://github.com/heartcombo/devise/wiki/How-Tos есть миллион статей по разным применениям этого гема). Он представляет собой по сути дела фреймворк авторизации, аутентификации на сайтах которые используют Рейлсы. При этом он очень простой в использовании.

Чтобы установить его в файле gemfile.rb пишем:

gem "devise"

А потом переходим в консоль и набираем bundle update. А потом еще вот это:

rails generate devise:install

Гем установлен! Теперь нам нужно создать два вида пользователей. Покупатели и админы интернет магазина. Для этого создаем две модели в Devise:

rails g model user

А потом:

rails g model admin

Ну и конечно же rails db:migrate. Чтобы запустить миграции. У нас теперь есть форма регистрации, входа, восстановления пароля. В контроллере category.rb который мы хотим закрыть авторизацией пишем сверху вот так:

Нужна авторизация
Нужна авторизация

Надпись before_action :authenticate_admin! означает что нужно войти пользователю с логином и паролем админа.

У нас теперь есть регистрация и авторизация пользователей! Как все просто с Ruby on Rails!