Всем привет,
Я настроил систему ранжирования с пользовательскими титулами, но, как вы знаете, в Discourse нет встроенного способа назначать титул по умолчанию всем новым пользователям. Поэтому я придумал обходной путь, при котором:
- Новые участники состоят в Группе 1
- Активные участники состоят в Группе 2
- И так далее…
Использованный мной метод следующий:
cd /var/discourse
./launcher enter app
rails c
User.where(trust_level: 0).update_all(title: "Новый участник")
User.where(trust_level: 1).update_all(title: "Новый участник")
User.where(trust_level: 2).update_all(title: "Участник")
User.where(trust_level: 3).update_all(title: "Творческий участник")
Проблема
Мне приходится запускать эти команды вручную каждый раз, когда присоединяется новый пользователь. Если я запущу скрипт сегодня, а новый участник опубликует сообщение завтра, он не получит титул автоматически, поэтому мне придется заходить на сервер и снова выполнять команды.
Я пытался автоматизировать это с помощью Ruby-скрипта и вызова его через crontab, но получаю ошибку.
Я спросил ChatGPT, и он ответил:
«Модель User не загружается, когда вы запускаете скрипт напрямую с помощью Ruby вне среды Discourse».
Проблема в том, что у меня нет правильной настройки config/environment внутри файлов Discourse.
Я добавил это, но это не помогло.
Мой вопрос
Есть ли способ автоматизировать это без использования crontab? Или как правильно выполнить скрипт, обновляющий титулы пользователей, без ручного ввода в консоль Rails каждый раз?
Заранее спасибо!









