Gostaria de exibir um pequeno diferencial para todos os grupos de um usuário em cada postagem em um tópico (abaixo do nome de usuário). Tenho a funcionalidade básica funcionando, mas cheguei a um impasse ao encontrar os grupos do usuário que fez a postagem. Nos attrs do widget de metadados da postagem, posso encontrar alguns detalhes do usuário, mas os grupos não estão incluídos. Acho que preciso adicionar os grupos ao serializador de postagem, mas não tenho certeza de como fazer isso.
Olá,
Não sou um especialista – Em um plugin, você pode adicionar o campo groups ao serializador de posts, algo como isso:
add_to_serializer(
:post,
:groups
) { object.user&.groups }
No entanto, tenha em mente que, como está, qualquer pessoa pode ver em qual grupo uma pessoa está.
Dito isso, acredito que, desde que você esteja usando um flair, o nome do grupo será visível para qualquer pessoa, independentemente das permissões.
Você também pode inserir um novo campo available_flairs para retornar apenas os campos necessários dos flairs do grupo:
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
Espero que ajude. ![]()
Este componente pode ser de interesse durante a criação de posts, talvez para adicionar “flairs” aos posts durante a criação?
A segunda solução é exatamente o que estou procurando, mas não consigo fazê-la funcionar. Por algum motivo, o array available_flairs não aparece. Estou certo ao assumir que o código deve ir para o plugins.rb?
Para aparecer no contexto post-meta-data, tente usar a API. Isso deve funcionar!
api.includePostAttributes("available_flairs");
Isso resolveu o problema. Obrigado pela ajuda!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
