我想在主题中的每个帖子(用户名下方)显示用户的所有用户组的小装饰。基本功能我已经实现了,但在查找发帖用户的用户组时遇到了困难。在 post-meta-data 小部件的 attrs 中,我可以找到一些用户详细信息,但不包括用户组。我认为我需要将用户组添加到 post 序列化器中,但我不确定如何操作。
2 个赞
您好,
我不是专家——在插件中,您可以将 groups 字段添加到帖子序列化器中,类似这样:
add_to_serializer(
:post,
:groups
) { object.user&.groups }
但是,请注意,就这样的话,任何人都可以看到某人属于哪个组。
话虽如此,我相信只要您使用标识(flair),组名就会对任何人可见,无论权限如何。
您还可以插入一个新的 available_flairs 字段来仅返回组标识所需的字段:
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
希望这有帮助。 ![]()
3 个赞
这个组件可能在创建帖子时很有用,也许可以在创建时为帖子添加Flair?
第二个解决方案正是我想要的,但我无法让它工作。出于某种原因,available_flairs 数组根本没有显示出来。我是否可以认为代码应该放在 plugins.rb 中?
要在 post-meta-data 上下文中显示,请尝试使用 API。这应该会奏效!
api.includePostAttributes("available_flairs");
这招奏效了。谢谢你的帮助!
1 个赞
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
