# 在主题中查找发帖人的所有群组

**URL:** <https://meta.discourse.org/t/finding-all-groups-of-the-poster-in-a-topic/311377>\
**Category:** Development\
**Created:** [2024 年6 月 10 日 11:55 UTC](https://meta.discourse.org/t/finding-all-groups-of-the-poster-in-a-topic/311377 "2024-06-10T11:55:25Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

作者： ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)\
发布日期： [2024 年6 月 10 日 14:34 UTC](https://meta.discourse.org/t/finding-all-groups-of-the-poster-in-a-topic/311377/2 "2024-06-10T14:34:00Z")

</div>

您好，

我不是专家——在插件中，您可以将 `groups` 字段添加到帖子序列化器中，类似这样：

```ruby
add_to_serializer(
    :post,
    :groups
) { object.user&.groups }

```

但是，_请注意_，就这样的话，任何人都可以看到某人属于哪个组。  
话虽如此，我相信只要您使用标识（flair），组名就会对任何人可见，无论权限如何。

您还可以插入一个新的 `available_flairs` 字段来仅返回组标识所需的字段：

```ruby
add_to_serializer(:post, :available_flairs) do
  flairs = Array(object.user&.groups&.map do |group|
    next unless group.flair_url
    {
      id: group.id,
      name: group.name,
      url: group.flair_url,
      bgColor: group.flair_bg_color,
      color: group.flair_color
    }
  end).compact

  flairs
end

```

 ![NVIDIA_Share_7Q7BH3rvRa](https://global.discourse-cdn.com/meta/original/4X/8/f/1/8f1579dbf7af1b8e556e7a02ca974e407acc75c6.png)

希望这有帮助。 👍

---

_[View the full topic](https://meta.discourse.org/t/finding-all-groups-of-the-poster-in-a-topic/311377)._
