# 如何将所有成员添加到新群组？

**URL:** <https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784>\
**Category:** Support\
**Created:** [2023年九月22日 12:20 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784 "2023-09-22T12:20:19Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![kam44](https://avatars.discourse-cdn.com/v4/letter/k/e47c2d/32.png) [@kam44](https://meta.discourse.org/u/kam44)\
**Post date:** [2023年九月22日 12:20 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/1 "2023-09-22T12:20:19Z")

</div>

您好，

我想将所有成员添加到一个新组中，但当我尝试复制粘贴一个由逗号分隔的大型用户名列表时，会收到一条错误消息。

当我尝试导入 100 个时，它可以正常工作，但我需要添加 40,000 名成员……

过去最多可以导入 10,000 个。

有什么建议吗？

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年九月22日 14:24 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/2 "2023-09-22T14:24:39Z")

</div>

是的，我不确定UI批量添加是否能添加数千名用户。我认为你可以通过创建一个新组，然后使用rails控制台将trust\_level: 0的用户添加到该组来实现。如果你决定走这条路，请务必先备份。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年九月22日 15:00 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/3 "2023-09-22T15:00:12Z")

</div>

> [@kam44](#):
>
> 我想将所有成员添加到一个新组中，

为什么？这解决了什么问题？您之后打算删除其中一些成员吗？为什么不直接使用 `trust_level_0` 或 `trust_level_1`？您试图做的任何事情，将所有用户添加到组中都不是解决问题的最佳方法。

您可以通过 Rails 来实现。我认为这会起作用。

```plaintext
group=Group.find_by_name('my_group')
User.all.each do |user|
  GroupUser.create!(user_id: user.id, group_id: group.id)
end

```

我写了一个插件，也许会有帮助，但它未经充分测试，并且有人尝试过它遇到了麻烦。如果您有预算或足够勇敢，可以联系我。

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年九月22日 15:18 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/4 "2023-09-22T15:18:27Z")

</div>

我只是在需要针对所有成员群体时使用 Trust\_level\_0。

---

<div class="post-metadata">

**Author:** ![kam44](https://avatars.discourse-cdn.com/v4/letter/k/e47c2d/32.png) [@kam44](https://meta.discourse.org/u/kam44)\
**Post date:** [2023年九月22日 16:32 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/5 "2023-09-22T16:32:26Z")

</div>

> [@pfaffman](#):
>
> 为什么？这解决了什么问题？

我想在主题中提及（并通过电子邮件通知）所有成员。这是否适用于 Trust\_level\_0 级别组？理想情况下，我更愿意创建一个新组来自定义组名。

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年九月22日 16:43 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/6 "2023-09-22T16:43:35Z")

</div>

![IMG_0612](https://global.discourse-cdn.com/meta/original/4X/0/8/f/08f8543c32dda7878cb4cad1b71b33191610bad7.jpeg)

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年九月22日 16:48 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/7 "2023-09-22T16:48:56Z")

</div>

> [@kam44](#):
>
> 我想在一个主题中提及（并通过电子邮件通知）所有成员。

也许可以设置一个公告类别，并将所有人都设置为关注该类别？

你可以像我建议的那样从 rails 中添加所有人，但这不会添加新用户。

也许可以看看自动化插件和通过徽章进行的群组成员身份。看起来你可以创建一个自定义徽章，将拥有该徽章的用户添加到群组：[Discourse Automation](https://meta.discourse.org/t/discourse-automation/195773)

---

<div class="post-metadata">

**Author:** ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)\
**Post date:** [2023年九月22日 16:51 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/8 "2023-09-22T16:51:39Z")

</div>

如果您拥有的用户数超过 100 位，则需要更改 `max users notified per group mention`（每组提及通知的最大用户数）设置。

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年九月22日 16:52 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/9 "2023-09-22T16:52:33Z")

</div>

说得对！谢谢，我忘了那个设置了。🙂

---

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [2023年九月22日 17:10 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/10 "2023-09-22T17:10:39Z")

</div>

> [@kam44](#):
>
> 我想将所有成员添加到一个新组中，但当我尝试复制粘贴一个由逗号分隔的大型用户名列表时，我收到了一条错误消息。
> 
> 当我尝试导入 100 个时，它可以工作，但我有 40K 个成员要添加……

您可以一次性添加到组的“添加用户”表单中的最大用户数为 1000。查看代码，如果您尝试添加更多用户，您应该会收到类似以下的错误消息：

“一次最多可添加 1000 个用户。”

否则 Discourse 可能会引发未处理的错误。为了绕过此限制，我喜欢 Jay 建议的自动化插件方法。

---

<div class="post-metadata">

**Author:** ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)\
**Post date:** [2023年九月23日 01:56 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/11 "2023-09-23T01:56:34Z")

</div>

> [@pfaffman](#):
>
> `GroupUser.create!(user_id: user.id, group_id: group.id)`

为什么不使用封装的接口 `group.add(user)`？以这种方式直接操作 ActiveRecord 是否会有潜在问题？

---

<div class="post-metadata">

**Author:** ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)\
**Post date:** [2023年九月23日 02:54 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/12 "2023-09-23T02:54:08Z")

</div>

> [@pfaffman](#):
>
> 也许可以设置一个公告类别，然后让所有人都关注该类别？

我相当确定这是最（也是最简单）的解决方案，适用于 @kam44 的用例。

但了解如何从 Rails 控制台将用户添加到群组非常有帮助：这在合并大型群组时会派上用场，我偶尔不得不这样做！

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年九月23日 15:18 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/13 "2023-09-23T15:18:02Z")

</div>

> [@Lhc\_fl](#):
>
> 为什么不使用封装的接口 `group.add(user)`？

确实为什么不呢？不确定我之前找的时候为什么没看到。

调用 ActiveRecord 的东西并不危险。它会强制执行它需要的规则。

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2023年十月25日 00:30 UTC](https://meta.discourse.org/t/how-to-add-all-members-in-a-new-group/279784/15 "2023-10-25T00:30:39Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
