# 根据信任等级自动分配标题

**URL:** <https://meta.discourse.org/t/automatically-assigning-titles-based-on-trust-level-in-discourse/357365>\
**Category:** Support\
**Created:** [2025年三月15日 03:04 UTC](https://meta.discourse.org/t/automatically-assigning-titles-based-on-trust-level-in-discourse/357365 "2025-03-15T03:04:25Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![xkhalid](https://avatars.discourse-cdn.com/v4/letter/x/3ab097/32.png) [@xkhalid](https://meta.discourse.org/u/xkhalid)\
**Post date:** [2025年三月15日 03:04 UTC](https://meta.discourse.org/t/automatically-assigning-titles-based-on-trust-level-in-discourse/357365/1 "2025-03-15T03:04:25Z")

</div>

大家好，

我设置了一个带有自定义头衔的排名系统，但正如你们所知，Discourse 没有内置的方法为所有新用户分配默认头衔。所以，我创建了一个变通方法：

- 新成员属于 **第 1 组**
- 活跃成员属于 **第 2 组**
- 以此类推……

我使用的方法如下：

```plaintext
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，它告诉我：

> “当您在 Discourse 环境外直接使用 Ruby 运行脚本时，User 模型未加载。”

问题是我在 Discourse 文件中没有正确的 **config/environment** 设置。

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/f/7/6f7af803de14e737f1f5dfbc4caaf604bb9895a2.jpeg)

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/3/c/03c3cde3dc5875652f35ca8db0ec468efdfb12fe.jpeg)

我添加了它，但它不起作用。

### 我的问题

有没有不使用 crontab 的自动化方法？或者如何在不手动进入 Rails 控制台的情况下正确执行更新用户头衔的脚本？

提前感谢！

---

_[View the full topic](https://meta.discourse.org/t/automatically-assigning-titles-based-on-trust-level-in-discourse/357365)._
