LINUX.ORG.RU

Я бы на уровенбь приложения вынес. Ведь эта забота приложения, чтоб был администратор, а не базы.

ichi404 ()
Ответ на: комментарий от ichi404

Согласен, а как это лучше сделать флаг какой-то дерать в моделе? Ссори я просто в вебе не силен.

cr0 ()

Типичнейший хэлп-вампиризм. Задача простейшая.

resurtm ★★★ ()
Ответ на: комментарий от ichi404

Что-то это совсем примитивно, а покрасивее никак?

cr0 ()
Ответ на: комментарий от resurtm

Ну не хотелось бы, чтобы эта проверка каждый раз была при создании юзера.

cr0 ()
Ответ на: комментарий от cr0

Эта проверка никак не затормозит твоё приложение. SELECT COUNT(*) отрабатывает за пренебрежимо короткое время.

resurtm ★★★ ()
Ответ на: комментарий от cr0

Создай админа во время миграций в БД, с дефолтным паролем, и сделай обязательную смену пароля при первом логине админа.

tierpunk ()
Ответ на: комментарий от tierpunk

Ну а узнать что это первая регистрация кроме как проверять каунт у модели, как еще можно?

cr0 ()
Ответ на: комментарий от ichi404

Я хз, и так конечно будеть работать. Но я спрашиваю, потому что не знаю возможностей rails, вдрег там что-то интересно есть для решения такой задачи.

cr0 ()
Ответ на: комментарий от cr0

Можно в базе ключ держать. Так некоторые CMS делают, только не для админа а для настроек.

ichi404 ()
Ответ на: комментарий от ichi404

Я вас понял, буду думать еще. Но похоже что каунт у модели самый оптимальный.

cr0 ()
Ответ на: комментарий от resurtm

SELECT COUNT(*) отрабатывает за пренебрежимо короткое время.

я бы не рискнул так обобщать )

kelyar ★★★★★ ()
Ответ на: комментарий от kelyar

Давай свой вариант, на этот нубский вопрос)

cr0 ()
after_create { update_attributes(role: 'admin') if id == 1 }
neversleep ★★ ()
Ответ на: комментарий от neversleep

А если таблица была пустая, но автоинкремент был установлен не в 1 по каким-то причинам?

INFOMAN ★★★★★ ()
Ответ на: комментарий от INFOMAN

по каким-то причинам?

По тем же причинам вместо единицы можно подставить любое другое число.

// Ясен пень, что способ не универсальный, но никаких подробностей автор не привёл, а этот вариант вполне подходит для дефолтной ситуации.

neversleep ★★ ()

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

blackst0ne ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.