Ruby on Rails 6/7, урок #17 | Ролевая модель, enum, TomSelect, сериализация

preview_player
Показать описание
Сегодня мы поговорим о том, как внедрить ролевую систему (чтобы пользователи могли быть модераторами или админами) в Rails с помощью enum. Также обсудим решение TomSelect как замену Select2 и узнаем о том, что такое сериализация, а также внедрим её с помощью Blueprinter.

Таймкоды:
00:00 Введение
00:30 Ответ: валидация тегов
01:00 Ответ: TomSelect как альтернатива Select2 (с AJAX)
06:00 Ответ: сериализация (serialier) вместо jBuilder
09:10 Роли и миграция
10:48 Enum в Rails и роли
12:30 Маршруты и представления для админки
14:00 Контроллер админки и изменение ролей
18:00 Форма редактирования пользователя
19:35 Вспомогательная функция для отображения ролей в форме
22:25 Проверка работы
23:20 Отображение роли пользователя
24:25 Финальные штрихи и заключение

Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

Лучшее изложение материала из урока в урок!

ecxmlqe
Автор

Илья, спасибо за материал. Можете посоветовать что-то почитать по индексам? чтобы кратко и понятно - в вашем стиле. А то как то все абстрактно обьсняется в найденных мною материалах. Хочется что то практическое. Как например bullet и include оптимизирует запрос. Так же по индексам: вот такой индекс надо добавить для такого результата, другой индекс еще для чего-то..

Obrezkasada
Автор

когда проверял delete удалил того же пользовател которым был залогинен. current_user'у это явно не понравилось. то есть пользователя в бд нет, а в сессии и кукис есть. а такую ситуацию надо отлавливать как-то и где лучше это делать если надо?

Obrezkasada
Автор

Супер! Спасибо большое!

Небольшой вопросик к Вам:
Получается для того, чтобы применить миграцию где unique :true (уникальность тегов) сначала нужно отменить три предыдущие миграции (включая CreateTags), с целью очистить коллекцию созданных с помощью Faker тегов, иначе пришлось бы записать unique :false. Затем сгенерировать миграцию, добавить, title = Faker::Hipster.unique.word), а после выполнить снова команду rails db:seed ?

zjkgjry
Автор

Здравствуйте, Илья!

Буквально на днях «tom-select», и частично «select2» приказали долго жить. Ошибки следующие появились (пишу кратко, чтоб youtube не удалил):

1. Для версий yarn v3.2.1 и node -v17.1.0:
$ bin/webpack/dev/server

Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.

2. Для версий yarn 1.22.19 и node -12.22.9:
$ bin/webpack/dev/server

ERROR in tom-select.popular.js
Module build failed (from babel-loader/lib/index.js):
Error: tom-select.popular.js: unknown Statement of type "ForOfStatement"


Много чего попробовал, с версиями поиграться и похоже дело в самом содержимом package.json, а точнее в появившейся буквально на днях (2 дня назад) несовместимости: webpack-dev-server, webpack, webpack-cli. Сам полностью на вебпакер не мигрируюсь, потому что тогда начинаются проблемы с css подключениями. Ошибка не гуглится совсем, но она и свежая, еще пару дней назад все работало как часы.
Не подскажете в чем тут может быть дело?

hjxgtnm
Автор

У меня Rails упорно не хочет подключать сторонние модули в JS. Не пойму в чем проблема.

kremkasu
Автор

Там еще есть respond_with_zipped_users

alexanonym